GUTEN MORGEN ZUSAMMEN! Ich möchte mit ADC9 einenen Spannungswert auslesen und diesen dann weiterverarbeiten. Um den ADC zu testen, lese ich den ADC Wert ein und übertrage in direkt auf den DAC-Ausgang, dies funktioniert einwandfrei. Desweiteren möchte ich ab einem gewissen Spannungswert die PWM einschalten und bei erreichen eines Maximalwertes die PWM wieder ausschalten. Übertrage ich das Programm in den Controller, ist die PWM aus. Wenn ich dann mein Netzgerät (welches ich zur Simulation der ADC Eingangsspannung benutze) bis fast auf 0 zurückdrehe, spring die PWM an. Wenn ich es dann wieder hochstelle bleibt die PWM trotzdem an und wird nicht mehr ausgeschaltet. Ich rufe get_adc_data() ständig mit einer while-Schleife auf. void get_adc_data(void) { unsigned int max_current = 2; unsigned int v_in_ADC; unsigned int value_current; int i; unsigned long int sum; unsigned int average_ADC; sum=0; average_ADC=0; for(i=0; i<32; i++) { ADCSRA |=(1<<ADSC);//ADC_starting_conversation while( ADCSRA & (1<<ADSC)); //waiting_for_conversation_end sum = sum+ADCW; } average_ADC = sum/32; DAC = average_ADC; DACON |= (1<<DALA)|(1<<DAOE)|(1<<DAEN); //DAC_starting_conversation v_in_ADC = (average_ADC * 5)/1023; //value_current = ((((v_in_ADC*5)/Vc_LEM)-2.5)/0.00222); if(v_in_ADC <= max_current) { PCTL2 |= (1<<PCCYC2)|(1<<PRUN2); // PWM_Output_enable } else { PCTL2 |= (0<<PCCYC2)|(0<<PRUN2); // PWM_Output_disable } } Hat jemand eine Ahnung, wo der HUND begraben ist? Vielen DANK! Gruss
adcfail schrieb: > Übertrage ich das Programm in den Controller In welchen? Wie sieht der Schaltplan aus?
könnte wohl daran liegen das man so keine bits löschen kann:
> PCTL2 |= (0<<PCCYC2)|(0<<PRUN2); // PWM_Output_disable
@Peter II: Wie kann ich das Löschen der Bits anders lösen? DANKE! Gruss
@Peter II: DANKE &= wäre die bessere Lsg. meines Problems gewesen! ;)
Du meinst: DANKE &= ~(wäre die bessere Lsg. meines Problems gewesen!);
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.