Модераторы: PILOT, ManiaK, Mazzi
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Программа управления светодиодным индикатором 
:(
    Опции темы
KyKy
Дата 22.10.2010, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


КуКу



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 2.1.2006
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Может мой вопрос покажется очень банален, помоги разобраться с синтаксисом и работой самой программы.



Код

#include "io78f9222.h"    

// Определение байта конфигурации  (Option Byte)
#pragma location = "OPTBYTE"
__root const unsigned char optbyte = 0x9A; 

int main( void )
{
unsigned i, j;
unsigned char n = 1;

// отключить сторожевой таймер
  WDTM = 0x70;           
  
PM2 = 0; PMC2 = 0; PM3 = 0; PM4 = 0; PM12 = 0;

while(1)
{
for(i = 0; i < 6500; i++)
for(j = 0; j < 1000; j++);

// LED4
P12 = (n & 0x01) ? P12 & ~0x08 : P12 | 0x08;
  /*  if(n & 0x01)
        P12 &= ~0x08;
      else
        P12 |= 0x08;
*/
// LED3
P4 = (n & 0x02) ? P4 & ~0x20 : P4 | 0x20;

// LED2
P13 = (n & 0x04) ? P13 & ~0x01 : P13 | 0x01;

// LED1
P2 = (n & 0x08) ? P2 & ~0x08 : P2 | 0x08;

n <<= 1;
if(n == 0x10)
n = 1;
}
return 0;
}



что значат шестнадцатеричные коды и логические операции &, &= кто из них кто, простите С вообще не помню или дайте ссылочку почитать. Спасибо.
Код

P12 = (n & 0x01) ? P12 & ~0x08 : P12 | 0x08;
  /*  if(n & 0x01)
        P12 &= ~0x08;
      else
        P12 |= 0x08;
*/

PM MAIL WWW ICQ   Вверх
UniBomb
Дата 22.10.2010, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
***
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 1754
Регистрация: 24.10.2006
Где: Санкт-Петербург

Репутация: 9
Всего: 97



Цитата(KyKy @  22.10.2010,  12:47 Найти цитируемый пост)
шестнадцатеричные коды

А что могут значить шестнадцатиречиные коды? Это просто представление чисел. Самый простой способ перевести из 16 сс в 10 сс надо открыть обычный виндовый калькулятор, перевести его в инженерный вид. Далее нажать F5, ввести число, нажать F6 и увидите это же число в десятеричной сс.


Цитата(KyKy @  22.10.2010,  12:47 Найти цитируемый пост)
операции &, &=

& - это логический оператор И. Таблица истинности для него выглядит следующим образом:

Код

a b &
0 0 0
0 1 0
1 0 0
1 1 1


Иными словами, если ему скормить два числа, то на выходе будет число, единичные биты которого будут на тех местах, где они были единичными в обоих иходных числах.

запись P12 &= ~0x08; эквивалентна записи P12 =P12 & (~0x08);





--------------------
PM MAIL ICQ Skype   Вверх
Mazzi
Дата 27.10.2010, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Правильный
**


Профиль
Группа: Комодератор
Сообщений: 825
Регистрация: 3.4.2003

Репутация: 9
Всего: 21



Цитата(KyKy @ 22.10.2010,  11:47)
... С вообще не помню или дайте ссылочку почитать.

Вот тебе хороший справочник по Си.
Цитата
что значат... логические операции &= 


P12 &= ~0x08; это всё равно что P12 = P12 &(~0x08);



Это сообщение отредактировал(а) Mazzi - 27.10.2010, 13:53


--------------------
Мне нужны помощники.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.1173 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.