hallo ins forum,
kämpfe schon seit längerem mit meinem ad-wandler. board roland walter.
mit bascom funktioniert es einwandfrei, mit assembler leider nicht.
hier der code:
CodeBox ASM
kämpfe schon seit längerem mit meinem ad-wandler. board roland walter.
mit bascom funktioniert es einwandfrei, mit assembler leider nicht.
hier der code:
CodeBox ASM
; ad wandler mit atmega 8
;.nolist
.include "m8def.inc"
.list
; led an portb, pb0 als ausgabe
; ddrb = 1
sbi ddrb,pb0
;port c3 auf eingang
cbi ddrc,pc3
;** herr müller kanal int ref spannung 2,56 v, adc0
ldi r16,(0<<refs1)|(1<<refs0)|(0<<mux3)|(0<<mux2)|(0<<mux1)|(0<<mux0)
out admux,r16
ldi r16,(1<<aden)|(1<<adfr)|(1<<adps2)|(1<<adps1)|(1<<adps0)
out adcsra,r16
;*** hauptprogramm
main_loop:
rcall convert
rjmp main_loop
;ldi r16,(1<<aden)|(1<<adsc)|(1<<adfr)|(1<<adps2)|(1<<adps1)|(1<<adps0)
out adcsra,r16
;adsc wird nicht gesetzt im simulator ????
;warte:
convert:
sbi adcsra,adsc ; start conversion
warte:
sbic adcsra,adsc ; warte bis adc fertig
rjmp warte ; skip if bit in i/o is cleard
in r16,adch ; lese ergebnis
cpi r16,128
brlo convert_led_an
sbi portb,pb0
rjmp main_loop
convert_led_an:
cbi portb, pb0
rjmp main_loop