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.