Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру
314 Часть 111. Практическое программирование микроконтроллеров АVR in temp, ADCH ; старший ADC adc AregH, temp ; суммируем sbi ADCSRA, ADSC ; запуск нового преобразования reti endADC : ; расчет clr count 64 ; очистили счетчик div64 L : ; деление на 6 4 l s r AregH ; сдвинули старший ror AregL ; сдвинули младший inc count 64 cpi count 64 , 6 brne div64L ; сдвинули-поделили на 6 4 clr count 64 ; очистили счетчик ; посылаем во внешний мир mov temp , AregL ;младший результата rcall out com mov temp , AregH ; старший резуль тата rcall out com clr AregL ; очистили младший к след . разу clr AregH ; очистили старший sbi ADCSRA, ADSC ; запуск нового преобразования reti RESET : ldi temp , low (RAМEND ) out SPL, temp ldi temp , high ( RAМEND ) ; указатель стека out SPH, temp ; === UART ldi temp , 2 5 ; 9 6 00 out UBRRL , temp ; скор . передачи ldi temp, ( l<<RXEN l l<<TXEN ) out UCSRB , temp ; разреш . приема/передачи 8 битов ; ====TimerO ldi temp , ( l<<TOIEO ) ; разр . прер . TimerO out T IMSK, temp ldi temp , 255 ; очищаем прерывания out T I FR, temp ldi temp , ObO O O O O O l l out TCCRO , temp ; TimerO вкл . 1 : 6 4 -2 4 4 Гц ; ===== АЦП ; start ADC 1 / 32 = 125 кГц ; ldi temp , l<<ADEN l l<<ADPS2 l l<<ADPSO out ADCSRA, temp ldi temp , ( l <<REFSO ) 1 ( l<<REFS l ) ; внутренний ИОН , канал ADCO out ADМUX , temp sbi ADCSRA, ADSC ; запуск первого преобразования
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==