Forum: Mikrocontroller und Digitale Elektronik Atmega128 LED LOW HIGH PEGEL


von asta (Gast)


Lesenswert?

Hi leute ich hab ein problem mit meinem atmega128

hab an portA0 wie hier im bild:
http://www.mikrocontroller.net/wikifiles/b/bb/Led.gif

vorwiderstand 100ohm

einen led angeschlossen, wenn ich den port aktiviere sind volle 5volt 
auf a0. wenn ich jedoch jetzt den port deaktiviere sind es immer noch 
ca3,5volt, da leuchtet die led natürlich nciht.

an port a1 funktioniert das ohne problme

c-code:
DDRA = ( 1 << PA0 );
aktivieren: PORTA |= ( 1 << PA0 );
deaktiviern: PORTA &= ~( 1 << PA0 );

beim deaktiviern soll die led leuchten beim port a1 geht die spannung 
auf 0,5volt runter.

hat jemand einen tipp??? port a0 und a1 sind doch eigendlich identisch 
beim atmega128

von Philipp (Gast)


Lesenswert?

Irgendeine Verbindung mit nebenliegenden Ports?
Überhaupt richtigen Pin geschaltet?

von Chris L. (kingkernel)


Lesenswert?

ist das der ganze code, den du verwendest? hast du irgendwelche 
sonderfunktionen aktiviert, die diesen pin nutzen?
hast du mal nen anderen avr versucht?

von asta (Gast)


Lesenswert?

anderen avr = nein
sonderfunktionen = nein
ist natürlich nicht der ganze code
richtige pin = ja

ich habe die beschaltung an port A0 und A1 verwendet, da hat es an port 
A1 funktioniert. hab nun die LED von A0 auf A2 gelegt jetzt funktioniert 
A2 aber A1 nicht mehr. der erste pin vom port der verwendet wird hat als 
low 3,5v

ne idee woran das liegen kann???

von Gast (Gast)


Lesenswert?

vl. übersteigt der Strom den maximalen sink current dees Port Pins?

von asta (Gast)


Lesenswert?

egal welcher pin des port a verwendet wird, wenn er der erste ist, ist 
der low pegel bei 3,5volt.

liegts vllt an meinen 100ohm vorwiderstand???
im tutorium steht ja 1kohm

von asta (Gast)


Lesenswert?

Denke nicht das es am "maximalen sink current" liegen kann, ist ja nur 
ein LED dran. 2 LED an Port A der uC müsste das doch locker schaffen.

von Philipp (Gast)


Lesenswert?

vielleicht wirklich ein stückchen code an anderer stelle, welches dort 
mitmischt.
Ich mag zwar solche Sätze überhaupt nicht, aber: Zeig uns doch mal den 
ganzen sourcecode.

von asta (Gast)


Lesenswert?

der ganze code wer etwas viel. ist 2 uart definiert aber an port d und 
e. ansonsten steht zum port a nur das hier:

...
int main...
DDRA = ( 1 << PA1 );
DDRA = ( 1 << PA2 );

PORTA |= ( 1 << PA1 );
PORTA |= ( 1 << PA2 );
...

if...
PORTA ^= ( 1 << PA1 );
PORTA &= ~( 1 << PA2 );
...

das komische ist das nur der erste pin des ports, einen low pegel von 
3,5v hat. der rest hat 0,5volt. wenn ich jetzt ich jetzt a6 und a7 nehme 
funktioniert dann a6 nicht wenn ich die led's an den pins tausche geht 
wieder der niedrige nicht.

:-(   :-(   :-(

von Chris L. (kingkernel)


Lesenswert?

ja, zeig mal den ganzen code her. und einen schaltplan, layout und fotos 
deines aufbaus

von asta (Gast)


Lesenswert?

schaltplan hab ich noch nicht. der uc läuft ja nur diese eine sache 
klappt nicht. zum layout der pin A1 ist direkt mit dem led dann 100ohm 
und dann vcc verbunden.

im code ist der pin a1 und a2 als ausgang definiert und mittels code 
hier ein beispiel:

aktivieren: PORTA |= ( 1 << PA0 );
deaktiviern: PORTA &= ~( 1 << PA0 );

wird ein und ausgeschaltet. da ist nix anderes das den ersten 
verwendeten  pin des ports a auf low 3,5v anheben kann.

wenn ich den pin a1 blicken lasse geht es im 1s takt von 3,5v auf 4,9v 
auf

von spess53 (Gast)


Lesenswert?

Hi

>im code ist der pin a1 und a2 als ausgang definiert und mittels code
>hier ein beispiel:

Aber hoffentlich nicht so:

DDRA = ( 1 << PA1 );
DDRA = ( 1 << PA2 );

MfG Spess

von asta (Gast)


Lesenswert?

doch :-S

von asta (Gast)


Lesenswert?

was ist daran falsch

von spess53 (Gast)


Lesenswert?

Hi

>was ist daran falsch

Weil du mit dem zweiten Befehl den ersten überschreibst.

DDRA = ( 1 << PA1 )|( 1 << PA2 );

MfG Spess

von asta (Gast)


Lesenswert?

ach man ich ideot, ja sorry

von spess53 (Gast)


Lesenswert?

Hi

>ach man ich ideot, ja sorry

Dann schon Idiot .

MfG Spess

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.