Problem Spannung Ausgang Atmega 32

Gast #2785066
Lesenswert?

Hallo
Habe mein Programm auf den Atmega 32 gespielt und Taster und Led`s 
angeschlossen. Nun habe ich das Problem das ich an den Ausgang erst 
immer 5 V hatte und jetzt oft nur noch 1,7 V. Obwohl ich ihn mit 5 V 
Speise.
Woran könnte dieses liegen. Ist die Spannung im Programm umschaltbar ?
#2785073
Lesenswert?

werner1 schrieb:
> Hallo
> Habe mein Programm auf den Atmega 32 gespielt und Taster und Led`s
> angeschlossen. Nun habe ich das Problem das ich an den Ausgang erst
> immer 5 V hatte und jetzt oft nur noch 1,7 V. Obwohl ich ihn mit 5 V
> Speise.
> Woran könnte dieses liegen. Ist die Spannung im Programm umschaltbar ?

Das könnte zb daran liegen, dass du dir im Programm irgendwo irrtümlich 
einen Pin, der eigentlich Ausgang sein sollte auf Eingang 
umprogrammierst.

Anstalle von "Ausgang auf 0V / Ausgang auf 5V" schaltet dann dein 
Programm "Pullup weg / Pullup zu". zusammen mit der Externbeschaltung 
wechselt dann die Spannung nur noch von 0V auf 1.7V (und es steckt kein 
oder kaum mehr Strom dahinter, weil der Pin ja als Eingang programmiert 
ist)
#2785074
Lesenswert?

@  werner1 (Gast)

>immer 5 V hatte und jetzt oft nur noch 1,7 V. Obwohl ich ihn mit 5 V
>Speise.
>Woran könnte dieses liegen.

Programmierfehler, Port ist nicht als Ausgang geschaltet (DDRx 
Register).
Hardwaredefekt

> Ist die Spannung im Programm umschaltbar ?

Nein. Nur 0V und VCC, hier 5V.
Gast #2785156
Lesenswert?

Dürfte eigentlich nicht sein hier mein Programm.

#include <avr/io.h>

int main(void)
{
    DDRD = 0x01 << PD0;    //PortD Pin 0 wird als Ausgang gesetzt
  DDRD = 0x01 << PD1;    //PortD Pin 1 wird als Ausgang gesetzt
  DDRD = 0x01 << PD2;    //PortD Pin 2 wird als Ausgang gesetzt

  DDRA &= ~(1 << DDA0);  //PortA Pin 0 wird als Eingang gesetzt
  DDRA &= ~(1 << DDA1);  //PortA Pin 1 wird als Eingang gesetzt
  DDRA &= ~(1 << DDA2);  //PortA Pin 2 wird als Eingang gesetzt

  PORTA |= (1<<PA0);    //Pull-up einschalten
  PORTA |= (1<<PA1);    //Pull-up einschalten
  PORTA |= (1<<PA2);    //Pull-up einschalten

  //uint8_t taster1;

//# define Taster PA0



    while(1)
    {
    if ((PINA&(1<<PA0))  )   // Abfrage PIN A2    (Taster nach GND)

    {
    PORTD |= 1<<PD0    ;    // PIN D0 = 1
    }
    else

    {
    PORTD &= ~(1<<PD0);        // PIN D0 = 0
    }

  }
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren