[an error occurred while processing this directive]
Что за глюки с CV AVR (или с моей головой), ну прям какая-то дурь (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Андрей Сорокин 10 августа 2005 г. 16:13

обработчик прерывания (мега16):

interrupt [EXT_INT1] void ext_int1_isr(void){
unsigned char null_h,null_m,null_s;
rtc_get_time(&h,&m,&s);
null_h=(h<10)?'0':'';
null_m=(m<10)?'0':'';
null_s=(s<10)?'0':'';
printf("%c%u:%c%u:%c%u\r\n",null_h,h,null_m,m,null_s,s);
}
выдает по УАРТУ время. Но если написать тоже самое по другому (не буду объснять зачем - надо):

interrupt [EXT_INT1] void ext_int1_isr(void){
unsigned char null_h,null_m,null_s;
unsigned char buff[10];
rtc_get_time(&h,&m,&s);
null_h=(h<10)?'0':'';
null_m=(m<10)?'0':'';
null_s=(s<10)?'0':'';
sprintf(buff,"%c%u:%c%u:%c%u\r\n",null_h,h,null_m,m,null_s,s);
puts(buff);
}
не работает нифига (в порт идет только символ 0x0A). Может есть какие-то ограничения на использования sprintf() в прерываниях?

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru