STK300 (ATmega103L) hallo, folgendes Programm soll den Analog Digital Wandler meines STK300 ansprechen. es bleibt aber hängen, und zwar an einer Stelle, die der CodeWizard von CodeVisionAVR programmiert hat. Hier das Programm mit markierter Stelle, wo's hängen bleibt. Ich hoff jemand sieht durch, und kann mir helfen. -------------------------------------------------------------- #include <mega103.h> #include <stdio.h> #include <delay.h> #include <stdlib.h> unsigned int adc_data; // ADC interrupt service routine #pragma savereg- interrupt [ADC_INT] void adc_isr(void) { #asm push r30 push r31 #endasm // Read the AD conversion result adc_data=ADCW; #asm pop r31 pop r30 #endasm } #pragma savereg+ // Read the AD conversion result // with noise canceling unsigned int read_adc(unsigned char adc_input) { ADMUX=adc_input; ADCSR&=0x7f; ADCSR|=0xc0; #asm in r30,mcucr cbr r30,__sm_mask sbr r30,__se_bit -> bei diesem befehl bleibts hängen out mcucr,r30 -> dieser Befehl wird schon nicht mehr ausgeführt sleep cbr r30,__se_bit out mcucr,r30 #endasm return adc_data; } unsigned int Vmess; float b; char s[6]; void main(void) { PORTB=0xFF; DDRB=0xFF; PORTD=0x00; DDRD=0x00; // UART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // UART Receiver: On // UART Transmitter: On // UART Baud rate: 9600 UCR=0x18; UBRR=0x19; ACSR=0x80; #asm("sei") while (1) { if (PIND.0==0) { printf ("gedrückt\n\r"); Vmess=read_adc(0b00000000); //wert aus ADCL und ADCH an Pin1 auslesen printf ("%7d",Vmess); Vmess*=5; b= Vmess/1023.0; printf("%f\n\r",b); ftoa(b,3,s); puts(s); putchar('\n'); putchar('\r'); delay_ms(400); } } } --------------------------------------------------------------
man, ich such schon ne woche nach dem beschissenen fehler ... hab den wald vor lauter bäumen nicht gesehn. ADCSR=0x8F; vergessen. initialisierung vom ADC hat gefehlt ... ich könnt mir in den arsch treten. tja, menschliches versagen ...
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.