реклама на сайте
подробности

 
 
> mega88PA асинхронный счетчик2, не получается запустить Т2
arttab
сообщение Nov 1 2012, 03:38
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



Если повтор, то извиняйте - не нашел. тыкните куда надо

нужно запустить Т2 асинхронно с последующим переводом power save и с периодическим пробуждению по переполнению. тактирование от от встроенного кварца 8МГц с , делителем на 8

сделал г.код для отладки именно этого момента:
__disable_interrupt();
while(ASSR); //wait 0
TIMSK2=0; // not inerrupt
while(ASSR); //wait 0
ASSR=(0<<AS2);
while(ASSR); //wait 0
TCNT2=5;
while(ASSR); //wait 0
OCR2A=0;
while(ASSR); //wait 0
OCR2B=0;
while(ASSR); //wait 0
TCCR2B=(1<<CS22)|(1<<CS21)|(0<<CS20);//TIMER0_PRECSALER; // ///////////////CLK/256/250 = 15.625 (64ms)
while(ASSR); //wait 0
TCCR2A=0; //ctc
while(ASSR); //wait 0
TIMSK2=(1<<TOIE2); /* TIMER0 ON */
while(ASSR); //wait 0
TIFR2=(0<<TOV2);
while(ASSR); //wait 0


в сон:

while(ASSR);
while ( count_old==count ) {
__enable_interrupt();
SMCR|=(1<<SM1)|(1<<SM0)|(1<<SE);//MCUCR|=(1<<SE);
__sleep();
SMCR&=~(1<<SE);//MCUCR&=~(1<<SE); // Â sleep



--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
arttab
сообщение Nov 1 2012, 08:04
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



не работает - т.е. не заходит в прерывание __interrupt void TIMER0_OVF2_interrupt(void).
в прерывании дергаю вывод и смотрю на осциллографе - интервал остается 64мсек.

"Т2 асинхронно" видимо я не правильно выразился. я имел в виду что перевожу ядро в save mode.

еще по разбираюсь - вроде заработало, но не уверен.

Спасибо!





--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 1 2012, 08:52
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (arttab @ Nov 1 2012, 11:04) *
"Т2 асинхронно" видимо я не правильно выразился. я имел в виду что перевожу ядро в save mode.
А, ну если источник тактирования у таймера и ядра один - то тогда вообще ASSR читать не нужно.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 15:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.01396 секунд с 7
ELECTRONIX ©2004-2016