Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Пт июн 29, 2012 00:44:49
Програмирую а КодеВижн 205 спидометр на мото,а моделирую в протеусе78,сделал вот так:
1.настроил 2байтный счетчик на 10кГц счета
2.поставил прерывание по захвату
В протеусе поставил генератор частот на 1 Гц на ножку захвата таймера, и по идее регистры старшый и младшый должны содержать значение равно в 10000.Но вот только младшый регистр работает,тоисть его значение меняются, а старшый почему то всегда в ноле .И это не только старший регистр захвата ,а и регистр самого счетчика почемуто всегда в ноле (
Вот почему этот код на экране выводит "0",вместо значения ? Где ошибка или это протеус неработает как надо?
interrupt [TIM1_CAPT] void timer1_capt_isr(void)
{
sprintf(buf,"%i",ICR1H);
lcd_gotoxy(0,0);
lcd_puts(buf);
TCNT1H=0x00;
TCNT1L=0x00;
}
Пт июн 29, 2012 23:28:46
Вот выдержка из даташита по поводу чтения 16-битных регистров таймера:
For a 16-bit read, the Low byte must be read before the High byte.
Сб июн 30, 2012 15:22:46
Ser60 писал(а):Вот выдержка из даташита по поводу чтения 16-битных регистров таймера:
For a 16-bit read, the Low byte must be read before the High byte.
Огромное спасибо,помогло) там ещё такой прикол есть что если обнулять значения регистров счетчиков, то наоборот,сначала старш потом младш.
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.