Gast
#1597391
Hallo, Seit langen mal wieder hier ! Atmel AtTiny13 mit 9,6 MHz interner Oszillator Mit dem Zeichen U (0x55) initilisiert sich der Software URAT (Auto BAUDing 300 - 115200). Erwartete Antwort kommt ! Mit dem Zeichen 0 (0x30) kann ich dann den logischen Zustand vom PB2 bis PB5 (nicht wirklich PB5 da noch Reset) lesen (Pull-Up setzen) Mit dem Zeichen 8 (0x38) starte ich einen Sreamread der Ports. Klappt besser als ich es mir erträumt hätte. Bei allen BAUT-Raten bis jetzt keine Bitfehler. Nun das Ganze mit AD-Wandler, und das geht eben nicht mehr. Mit dem Zeichen 4 (0x34). Ausgabe ist im Test auf o und k vorbelegt. Die Routine gibt aber nicht mal die geechote 4 aus. NextAD: inc r16 out ADMUX,r16 lsr r18 brcc Not2read ;LowNoiseAD zerstört r16 und r17 ldi r16, 0<<PUD|1<<ISC00|0<<ISC01|1<<SE|0<<SM1|1<<SM0 out MCUCR,r16 in r16,ADCSRA cbr r16,0b11111000 sbr r16,1<<ADEN|1<<ADSC|0<<ADATE|0<<ADIF|1<<ADIE out ADCSRA,r16 sleep ldi r16, 0<<PUD|1<<ISC00|0<<ISC01|1<<SE|0<<SM1|0<<SM0 out MCUCR,r16 in r16,ADCH ldi r16,'o' rcall SendData in r17,ADCL in r16,ADMUX Not2read: lsr r19 lsr r19 or r19,r17 brcc NextAD mov r16,r19 ldi r16,'k' rcall SendData ret Kommentiere ich aber die follgenden Zeilen aus, ldi r16, 0<<PUD|1<<ISC00|0<<ISC01|1<<SE|0<<SM1|1<<SM0 out MCUCR,r16 in r16,ADCSRA cbr r16,0b11111000 sbr r16,1<<ADEN|1<<ADSC|0<<ADATE|0<<ADIF|1<<ADIE out ADCSRA,r16 sleep ldi r16, 0<<PUD|1<<ISC00|0<<ISC01|1<<SE|0<<SM1|0<<SM0 out MCUCR,r16 so erhalte ich beim Senden des Zeichens 4 die erwartete Antwort 4ook . Was passiert hier. Ich müsse doch selbst wenn der Controller stehen bleibt trotzdem wenigstens die 4 angezeigt bekommen da das StopBit ja noch ausgegeben wird. Jemand ne Idee? Liebe Grüße Christof
