Как я могу из своей программы на C обращаться к ресурсам процессора?
Ответ:
[Вернуться в категорию "Вопросы и ответы по программированию на C для микроконтроллеров PIC."] Прежде чем вы начнете писать код, ознакомьтесь с соответствующим header файлом. Его можно найти в каталоге include компилятора. Как правило, имя файла достаточно легко ассоциируется с процессором, и вдобавок, в его начале всегда пишется, для каких процессоров он предназначен. Например, для процессора 16F627/628 файл называется pic16f6x.h (я обычно распечатываю этот файл и держу его под рукой, пока не запомню всю мнемонику для регистров конкретного процессора). Дальше все очень просто. Например:
TRISB = 0b00001111; // установить разряды RB0…3 на ввод, RB4…7 - на вывод
RB5 = 1; // установить значение порта RB5 в '1'
if (RB0 == 0) // установить значение порта RB4 в зависимости от значения RB0 RB4 = 1;
// функция начальной инициализации (пример)
void Init (void) { INTCON = 0; // никаких прерываний, настраиваемся... PIE1 = 0; CMCON = 0b00000101; // один компаратор, RA1: Vin-, RA2: Vin+ VRCON = 0b11000000; // настройка источника опорного напряжения T0CS = 0; PORTA = 0; PORTB = 0; TRISA = 0b00000110; TRISB = 0b00000111; // RB0...2 - ввод, RB3...7 - вывод … … } // end Init
Причем можно работать как с регистром целиком, так и с отдельными битами. Обратите внимание, что всю возню с переключением банков памяти компилятор делает сам. [Вопросы и ответы по программированию на C для микроконтроллеров PIC.]
|