Atmega: Spannung an Ausgängen bricht ein

Gast #2872736
Lesenswert?

Servus,

Nun wie der Betreff schon sagt, bricht bei mir die 5V Spannung an allen 
Ausgängen zusammen sobald ich mehr als einen Pin schalte. Sowohl mit als 
auch ohne Last. In alten Themen war die Rede davon, dass das passiert 
wenn man die Ports als Eingang geschaltet hat aber das habe ich gemacht 
und es funktionert nicht.

Es sei denn, ich habe irgendetwas Grundlegendes verdreht oder völligst 
falsch verstanden.

AVR-Studio:
1
#include <avr/io.h>
2

3
int main(void)
4
{
5
  DDRD = 0b11111111;
6
  
7
  while(1)
8
    {    
9
      PORTD=(1<<PD0);
10
      PORTD=(1<<PD2);
11
      PORTD=(1<<PD4);
12
  }
13
    
14
}

Beschaltung des AVRs entspricht der Grundschaltung. An den Ausgängen 
sind drei LEDs. Nichts Großartiges.
Gast #2872749
Lesenswert?

FabC schrieb:
> Nun wie der Betreff schon sagt, bricht bei mir die 5V Spannung an allen
> Ausgängen zusammen sobald ich mehr als einen Pin schalte.

Wahrscheinlich auf irgendetwas um 1,7V, wobei die Spannung an PD4 
deutlich höher ist. Du betreibst deine Ausgänge im Zeitmultiplex. Guck 
dir das mal im Simulator an.
Gast #2872784
Lesenswert?

Michael schrieb:
> Wahrscheinlich auf irgendetwas um 1,7V, wobei die Spannung an PD4
> deutlich höher ist.

Ja es ist auf teilweise auch auf 0,9V zusammengebrochen.


Gut das mit
1
PORTD|=(1<<PD0);
funktionert nun. Alle haben jetzt 4,7-5V.

Aber nunja, warum macht das nun so einen Unterschied?
Gast #2872803
Lesenswert?

Hi

>Aber nunja, warum macht das nun so einen Unterschied?

      PORTD=(1<<PD0);  -> PortD = 0b00000001
      PORTD=(1<<PD2);  -> PortD = 0b00000100
      PORTD=(1<<PD4);  -> PortD = 0b00010000


      PORTD|=(1<<PD0);  -> PortD = 0b00000000 or 0b00000001 = 0b00000001
      PORTD|=(1<<PD2);  -> PortD = 0b00000001 or 0b00000100 = 0b00000101
      PORTD|=(1<<PD4);  -> PortD = 0b00000101 or 0b00010000 = 0b00010101

MfG Spess

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