Hallo, ich hab da ein merkwürdiges Problem. Ich möchte den ADC des Atmega168 über das Bit ADSC, aber leider wird bei meiner Programmierung nicht Bit6 sondern Bit1 (ADPS1) vom ADCSRA Register auf 1 gesetzt. Habs mir im Simulator (AVR Studio) angeschaut und kanns mir nicht erklären. im temp steht 0x85, dann wird angeblich ADSC gesetzt, danach seht 0x87 drin, sehr komisch Hab auch spassenshalber mal Bit 1 gesetzt um zu Schauen ob es da umgedreht ist, aber da kommt auch 0x87, is ja uch richtig so. ;Initialisierung ldi temp, (1<<REFS0) | (1<<MUX1) | (1<<MUX2) sts ADMUX, temp ldi temp, (1<<ADEN) | (1<<ADPS2) | (1<<ADPS0) sts ADCSRA, temp ;ADC Starten lds temp, ADCSRA sbr temp, ADSC sts ADCSRA, temp sbi funktioniert nicht wegen der Out of range Geschichte. Habt ihr ne Idee? Gruß
sbr setzt bits in Register "BITS". Also nicht nur eins. Mußt du wie bei ldi machen. Instructionset im Datasheet mal angucken unter Spalte Operation.
Hi
'SBR' benötigt eine Bitmaske.
>sbr temp, ADSC -> sbr temp, 1<<ADSC
MfG Spess
Uwe schrieb: > sbr setzt bits in Register "BITS". Also nicht nur eins. Mußt du wie bei > ldi machen. Instructionset im Datasheet mal angucken unter Spalte > Operation. So wird ein Schuh draus. lds temp, ADCSRA sbr temp, (1<<ADSC) sts ADCSRA, temp Danke.
Noch nen Frage zu den ADC Eingängen. Ich benutze PC0-PC5 als digitale Eingänge und hab nun PC6 als ADC (was anderes kanner ja auch nicht) in Verwendung. Was geschieht wenn ich über "in temp, PINC" die Eingänge von PortC einlese? Was steht in temp wenn an PC0-PC5 ne 1 ansteht am ADC nen Spannungn von 5 V liegt. Beinflusst der ADC den Inhalt von PINC oder ist der ADC-Pin ausgeblendet? Gruß
Hi >Ich benutze PC0-PC5 als digitale Eingänge und hab nun PC6 als ADC (was >anderes kanner ja auch nicht) in Verwendung. Was geschieht wenn ich über >"in temp, PINC" die Eingänge von PortC einlese? PC6 ist kein ADC-Eingang. Ohne gesetzte RSTDISBL-Fuse ist das der Reset-Eingang. ADC6/7 gibt es nur beim 32pol. TQFP/MLF-Gehäuse. MfG Spess
>sADC6/7 gibt es nur beim 32pol. TQFP/MLF-Gehäuse.
Naja, was meinst Du warum ich danach frage. ;-)
Also, kann der Wert von PINC größer werden als 0x3F wenn an ADC6 oder
ADC7 was dran ist oder nicht?
Gruß
Hi ADC6/7 gehören nicht zu PortC. Damit erübrigt sich die Frage. MfG Spess
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.