|
|
  |
Прерывания от компаратора, нужно два разных обработчика |
|
|
|
Jul 6 2007, 11:52
|
Гуру
     
Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446

|
Цитата организовать статическую переменную, по которой можно будет определять текущее состояние, и переходить на соответствующую подпрограмму обработки состояния отличный совет!!! Цитата В прерывании смотрите конфигурационные биты компаратора и выбирайте, какой "обработчик" задействовать. Да, это лучшее решение, уже пишу. Обработчиков всего два. А статические переменные использую, но в "технологических" целях. Например, узнать прерывание первое или второе (запустить/остановить таймер).
--------------------
Живи днем так, чтобы ночью ты спал спокойно.
|
|
|
|
|
Jul 6 2007, 14:19
|
Гуру
     
Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446

|
Вот с этим бы что-то сделать... //вывод на LCD void LCDDispFloat(float n, unsigned char decimals) { char nummer[16]; ftoa( (float)n, (unsigned char)decimals, nummer); lcd_puts(nummer); } lcd_gotoxy(1,3); lcd_putsf ("U="); LCDDispFloat(U,0); }; if (ACDC==1) { lcd_gotoxy(2,2); lcd_putsf ("F="); LCDDispFloat(F,2); } else { lcd_gotoxy(2,1); #pragma rl+ lcd_putsf ("ÏÎÑÒÎßÍÍÎÅ"); #pragma rl- }; Цитата оптимизация по коду то включена? да.
--------------------
Живи днем так, чтобы ночью ты спал спокойно.
|
|
|
|
|
Jul 6 2007, 15:06
|
Местный
  
Группа: Свой
Сообщений: 285
Регистрация: 5-11-05
Пользователь №: 10 491

|
Странно, почему нет printf?  ИМХО экономия возможна на lcd_gotoxy - считать адрес вручную. ftoa зачем вобще тут нужно???  какие здесь могут быть числа с плавающей точкой?
|
|
|
|
|
Jul 6 2007, 15:17
|
Местный
  
Группа: Свой
Сообщений: 285
Регистрация: 5-11-05
Пользователь №: 10 491

|
Цитата(smk @ Jul 6 2007, 19:10)  А как в десятичный формат преобразовать? использовать фиксированную точку
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|