Ошибка в инициализации таймера для AVR.

Все прочитали, вроде даже поняли, взяли паяльник - а нифига не получается? Скорее сюда! Поможем. Чем можем...
Ответить
Вова_1988
Родился
Сообщения: 14
Зарегистрирован: Вт мар 15, 2016 10:54:25

Ошибка в инициализации таймера для AVR.

Сообщение Вова_1988 »

Подскажите, пожалуйста. Вот фрагмент кода для инициализации таймера в режиме ШИМ:

Код: Выделить всё

// Timer/Counter 1 initialization
TCCR1B = 0x00; //stop Timer
TCNT1H = 0xFC; // 11111100 
TCNT1L = 0x01; // 00000001 
OCR1AH = 0x03; // PWM(PB1) = OCR1A / 10.23
OCR1AL = 0xFF; // 0x03FF это число 1023
OCR1BH = 0x03;
OCR1BL = 0xFF;
ICR1H  = 0x03;
ICR1L  = 0xFF;
TCCR1A = 10000011; 
TCCR1B = 00001011;  // start Timer
//OCR1A  = 0x00;     // ОШИБКА !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


Этот код работал для МК ATmega16, я его перенес на МК ATmega168 и мой компилятор CodeVision AVR не принимает такую запись. Ошибка: "undefined symbol 'OCR1A' ". Он же нормально работал ранее. Подскажите, пожалуйста, что делать...
kolobok0
Грызет канифоль
Сообщения: 296
Зарегистрирован: Ср дек 30, 2009 09:55:39

Re: Ошибка в инициализации таймера для AVR.

Сообщение kolobok0 »

Вова_1988 писал(а):Подскажите, пожалуйста....

Код: Выделить всё

...
//OCR1A  = 0x00;     // ОШИБКА !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


...перенес на МК ATmega168 и мой компилятор CodeVision AVR не принимает... "undefined symbol 'OCR1A' "....


оно же чёрным не по русски пишет - символ не определён.
ищите где и как он определяется.
Обратите внимание, что данный регистр в указанной модели(168) переехал из основной памяти в дополнительную - то бишь явная загрузка константы в него не прокатит(уровень азма). Как это выглядит на сях - не подскажу, но копаться надо в этом направлении.

(круглый)
Ответить

Вернуться в «Практика»