Forum: Mikrocontroller und Digitale Elektronik ADC_Wert lässt sich nicht weiterverarbeiten!?


von adcfail (Gast)


Lesenswert?

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

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

adcfail schrieb:
> Übertrage ich das Programm in den Controller
In welchen?
Wie sieht der Schaltplan aus?

von Peter II (Gast)


Lesenswert?

könnte wohl daran liegen das man so keine bits löschen kann:

>  PCTL2 |= (0<<PCCYC2)|(0<<PRUN2); // PWM_Output_disable

von adcfail (Gast)


Lesenswert?

@Peter II:

Wie kann ich das Löschen der Bits anders lösen?

DANKE!

Gruss

von adcfail (Gast)


Lesenswert?

@Peter II:

DANKE &= wäre die bessere Lsg. meines Problems gewesen! ;)

von Michael D. (etzen_michi)


Lesenswert?

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
Noch kein Account? Hier anmelden.