Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

AVR, ну чего шутить? Нужно вставить динамическую индикацию, попеременно показывать состояние каждого из датчиков. (асм вспомнить :) ) Потом прогнать ещё в отладчике. (+)

Отправлено уни 15 апреля 2007 г. 00:56
В ответ на: А за сколько, по-твоему? отправлено =AVR= 15 апреля 2007 г. 00:44

Динамическая индикация готова уже. Выдрал из старого своего приложения (ой программы). Где-то доку посеял по этому мк, нужно рассчитать установки для таймеров. Калькуляторы есть специальные... тоже где-то пропали. Ну... никогда не грех вручную вспомнить как это делается.
Ввод допишу, попеременную индикацию приделаю и всё. Немного тестов для проверки времён и записи с портов и усё.
Доделаю завтра утром. Но это не пол часа. Это одна отладка только пол часа.

Это рыба для индикации (не тестировал пока). 2(вх)-4(вых) декодер всё-таки по заданию буду пользовать, что отразил в коде. Походу они только сдвоенные бывают.

; Обработчик прерывания от нулевого таймера
; Нулевой таймер всего 8-разрядный, поэтому больших задержек на нём
; не получить. Он у нас отвечает за быстрое переключение самих индикаторов
TIM0_OVF:
; сохраняем статус регистр
in StatReg, SREG
; Здесь мы постоянно перебираем индикаторы
; Динамическая индикация короче.
; Текущие символы находятся в регистрах r5,r6,r7
inc Dig ; переходим к следующему разряду

sbrc Dig, 2 ; обнуляем значение разряда, если превысело 3 (всего: 0,1,2)
clr Dig
Digit1:
; Первый разряд индикатора (считать слева направо ->)
cpi Dig, 0
brne Digit2

out PORTB, r5 ; вывод символа на порт

; Устанавливаем адресные выходы
sbi DDRC, DDC6
sbi DDRC, DDC7
cbi PORTC, PINC6 ; - 00
cbi PORTC, PINC7 ; /

rjmp NoDig
Digit2:
; Второй разряд
cpi Dig, 1
brne Digit3

out PORTB, r6 ; вывод символа

; Устанавливаем адресные выходы
sbi DDRC, DDC6
sbi DDRC, DDC7
cbi PORTC, PINC6 ; - 01
sbi PORTC, PINC7 ; /

rjmp NoDig
Digit3:
; Третий разряд
cpi Dig, 2
brne NoDig

out PORTB, r7 ; вывод символа

; Устанавливаем адресные выходы
sbi DDRC, DDC6
sbi DDRC, DDC7
sbi PORTC, PINC6 ; - 10
cbi PORTC, PINC7 ; /

NoDig:
; Изменяем счётчик TCNT0 таймера Timer0
ser _tmp
out TCNT0, _tmp

; Восстанавливаем статус регистр
out SREG, StatReg
reti; TIM0_OVF



Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
отымите от 2 единицу:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru