Hallo zusammen bin am verzweifeln, ich will ja nur den ADC ansprechen, aber an PORTC (dient zur Anzeige) tut sich nichts, ausser das alle leds an den PortC leuchten (high pegel an PortC) Wer kann mir helfen, Vielen Dank Peter
Sorry das wichtigste Vergessen, .org 0x0000 rjmp main ; Reset Handler .org INT0addr reti ; EXT_INT0 ; IRQ0 Handler .org INT1addr reti ;EXT_INT1 ; IRQ1 Handler .org INT2addr reti ;EXT_INT2 ; IRQ2 Handler .org OC2addr reti ;TIM2_COMP ; Timer2 Compare Handler .org OVF2addr reti ;TIM2_OVF ; Timer2 Overflow Handler .org ICP1addr reti ;TIM1_CAPT ; Timer1 Capture Handler .org OC1Aaddr reti ;TIM1_COMPA ; Timer1 CompareA Handler .org OC1Baddr reti ;TIM1_COMPB ; Timer1 CompareB Handler .org OVF1addr reti ;TIM1_OVF ; Timer1 Overflow Handler .org OC0addr reti ;TIM0_COMP ; Timer0 Compare Handler .org OVF0addr reti ;TIM0_OVF ; Timer0 Overflow Handler .org SPIaddr reti ;SPI_STC ; SPI Transfer Complete Handler .org URXCaddr reti ;USART_RXC ; USART RX Complete Handler .org UDREaddr reti ;USART_UDRE ; UDR Empty Handler .org UTXCaddr reti ;USART_TXC ; USART TX Complete Handler .org ADCCaddr rjmp ADC ; ADC Conversion Complete Handler .org ERDYaddr reti ;EE_RDY ; EEPROM Ready Handler .org ACIaddr reti ;ANA_COMP ; Analog Comparator Handler .org TWSIaddr reti ;TWI ; Two-wire Serial Interface Handler .org SPMRaddr reti ;SPM_RDY ; Store Program Memory Ready Handler main: ;Initialisierung des Stack Pointers ->notwendig bei Interrupt Sprüngen ldi stack,LOW(RAMEND);Initiate Stackpointer out SPL,stack ; wegen Interrupts und Unterprogr. ldi stack,HIGH(RAMEND) out SPH,stack ;Stackpointerinitialisierung ende ldi mp,0xff out DDRC,mp ldi mp,0x00 out DDRA,mp ldi mp,0b00100011 out ADMUX, mp ldi mp,0b11101101 out ADCSR, mp sei loop: rjmp loop ADC: in ll,ADCH out PORTC,ll reti
hab jetzt noch versucht statt des High byte das low byte (ADCL) auszugeben und tatsächlich er gibt die ersten beiden bits an der Anzeige wieder. D.h die gesamten 10 bit sind mit 1 belegt. Ich bin doch im Free running mode warum nimmt er keinen neuen Wert an und aktualisiert somit den vorhandenen Wert? Vielen Dank Peter
Hab jetzt den Fehler wahrscheinlich gefunden den ich habe bit 7 und bit 6 von ADMUX auf 0 gesetzt. Bei Änderung auf den Wert 11 (bit,bit6) gibt er mir Werte zurück Allerdings verstehe ich nicht genau die Bedeutung von Vref Ich habe noch den entsprechenden Auszug aus der Spec hinzugefügt Ich habe jetzt eine Referenzspannung von 2.7V ? Was heißt das? Warum ging es nicht wenn sich abgeschalten war? Fragen über Fragen, Danke schon mal im Voraus Peter Bit 7:6 REFS1:0: Reference Selection Bits These bits select the voltage reference for the ADC, as shown in Table 83. If these bits are changed during a conversion, the change will not go in effect until this conversion is complete (ADIF in ADCSRA is set). The internal voltage reference options may not be used if an external reference voltage is being applied to the AREF pin. Table 83. Voltage Reference Selections for ADC REFS1 REFS0 Voltage Reference Selection 0 0 AREF, Internal Vref turned off 0 1 AVCC with external capacitor at AREF pin 1 0 Reserved 1 1 Internal 2.56V Voltage Reference with external capacitor at AREF pin
Hallo Peter ;) aref ist die Referrenzspannung am PIN32 (AREF) z.B. 5V. Darüber gibst du an bei welcher Analogspannung der ADC "Vollausschlag" hat. z.B. 5V --> 0b1111111111 Gruß -=jens=-
Hallo Jens, bei mir ist an AREF (Pin29 bei ATmega32,tqfp) ein Elko mit 4,7uF und an AVCC Pin (Pin 27) ein komplexer Spannungsteiler bestehend aus einem ohmschen Widerstand von 1kOhm und einem Elko von 4,7uF. Was bedeutet das für meine Referenzspannung. Was haben diese Eingänge für eine Aufgabe in meiner Beschaltung? Hab schon im Datenblatt nachgesehen werd daraus aber nicht schlau... Peter
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.