ВитГо писал(а):про метки: глянь файл tn2313A.inc (самый его конец)
эти метки - адреса точек прерываний..
нет у меня этого файла - я в блокноте пишу
был у меня пятый авр студио на второй машине, но на ней сдох HDD - куплю новый, восстановлю все программы
и только потом настраиваем встроенные устройства контроллера: счетчики, компараторы, АЦП и так далее
так?
Спойлер
Код: Выделить всё
reset: ; включение микроконтроллера
Sli ; глобальный запрет на прерывания
ldi Temp,low(RamEnd) ;
out SPL,Temp ;инициализации стека
ldi Temp,0b10000000
out DDRB,Temp ;настроили порт "В"
;х0000000 - "вывод" на передатчик
;0000хххх - "ввод" для чтения клавиатуры
ldi Temp,0b00001111
out DDRD,Temp ;настраиваем порт "D" на вывод(запись)(0-ввод, 1-вывод)
;0000хххх - на сканирование столбцов клавы
ldi Temp, (1<<OCIE1A) ;разрешить прерывание компаратора
out TIMSK,Temp
ldi Temp,0b00000001 ; тактовый сигнал = CK (1:1)
out TCCR1B,Temp ; тут счетчик "Б" начинае считать
; инициализация компаратора
ldi Temp,0xC ; 3кГц, 1/3000=0,00033сек=330мкс, 330/2=165мкс длительность импульса или паузы(время-Т)
out OCR1AH,Temp ; 0,05мкс*65535=3276,75 3276,75>165 --- по этому не будем делить тактовую частоту (СК)
ldi Temp,0xE4 ; 165мкс/0,05мкс=3300 тиков таймера 3300=CE4(hex)
out OCR1AL,Temp ;
ldi Temp,0 ;обнуление таймера при включении
out TCNT1H,Temp
out TCNT1L,Temp
я вот только про TCCR1A ни как не пойму...
нам что, нужно установить два тактовых сигнала ?
вот так
Код: Выделить всё
ldi Temp,0b00000001 ; тактовый сигнал = CK (1:1)
out TCCR1B,Temp ; тут счетчик начинает считать
; инициализация компаратора
ldi Temp,0x19 ; 3кГц, 1/3000=0,00033сек=330мкс, 330 длительность импульса или паузы(время-2Т)
out OCR1ВH,Temp ; 0,05мкс*65535=3276,75 3276,75>330 --- по этому не будем делить тактовую частоту (СК)
ldi Temp,0xC8 ; 330мкс/0,05мкс=6600 тиков таймера 6600=19C8(hex)
out OCR1ВL,Temp ; ?????????????????????????????????????????????????????????????????????????????
;************************************************************************************
ldi Temp,0b00000001 ; тактовый сигнал = CK (1:1)
out TCCR1A,Temp ; тут счетчик начинает считать
; инициализация компаратора
ldi Temp,0xC ; 3кГц, 1/3000=0,00033сек=330мкс, 330/2=165мкс длительность импульса или паузы(время-Т)
out OCR1AH,Temp ; 0,05мкс*65535=3276,75 3276,75>165 --- по этому не будем делить тактовую частоту (СК)
ldi Temp,0xE4 ; 165мкс/0,05мкс=3300 тиков таймера 3300=CE4(hex)
out OCR1AL,Temp ;