Forum: Mikrocontroller und Digitale Elektronik atmega644 frage


von jamest (Gast)


Lesenswert?

hi!
Anfängerfrage:
1
ldi temp1, 0xFF    ; Port D = Ausgang
2
out PORTD, temp1
3
4
out DDRD, temp1

Ich will einfach nur nen Port meines Atmega644 auf 5 V bringen. Mit dem 
Code werden doch die interenen Pullup Widerstände aktiviert und ich 
müsste 5V messen können oder? Aber ich bekomme nur 0,8V ? Muss ich nen 
externen Pullup ranbauen?

Gruß

von Floh (Gast)


Lesenswert?

Mit dem Code sind die Pins auf Ausgang (DDRD) und auf Vcc geschaltet 
(5V).
Was hängt den am Ausgang?
Bzw wie sieht dein vollständiger Code aus?

von jamest (Gast)


Lesenswert?

1
.include "m644def.inc"
2
.org 0x0
3
rjmp start
4
5
.cseg
6
.equ adresse = RAMEND
7
.def temp1 = r16
8
9
start:
10
ldi r17, high(adresse)
11
out SPH, r17
12
13
ldi r17, low(adresse)
14
out SPL, r17
15
16
17
ldi temp1, 0xFF    ; Port D = Ausgang
18
out PORTD, temp1
19
20
out DDRD, temp1
21
22
23
loop:
24
rjmp loop

Das ist der gesamte Code und der Ausgang ist unbeschaltet... Bin 
ratlos..

von Spess53 (Gast)


Lesenswert?

Hi

>Code werden doch die interenen Pullup Widerstände aktiviert

Nein.

>und ich müsste 5V messen können oder?

Das schon. Falls nicht im Programm etwas folgt, das die Einstellungen 
rückgängig macht

Sieh dir mal die Bedeutung der einzelnen Register eines Ports an.

MfG Spess

von Spess53 (Gast)


Lesenswert?

Hi

>Das ist der gesamte Code und der Ausgang ist unbeschaltet... Bin
>ratlos..

Entweder falsch gemessen oder falsches Programm geflasht.

>.equ adresse = RAMEND

>start:
>ldi r17, high(adresse)
>out SPH, r17

>ldi r17, low(adresse)
>out SPL, r17

Einfacher:

>ldi r17, high(RAMEND)
>out SPH, r17

>ldi r17, low(RAMEND)
>out SPL, r17

Und entscheide dich, ob du dieses temp-Gedödel oder 
Registerbezeichnungen benutzt. Das Vermischen ist tödlich.

MfG Spess

von jamest (Gast)


Lesenswert?

ich habe nun einmal eine LED an den Ausgang rangehängt und was passiert: 
die LED blinkt in schnellem Takt. Daher die 0,8V. Warum frage ich mich? 
Kann doch bei dem Code gar nicht sein...

Erst dachte ich, da wäre irgendein PWM Modus aktiv. Aber ich hab im Code 
s.o. ja überhaupt nichts derartiges eingestellt und auch an Ausgängen 
die nichts mit PWM zu tun haben das gleiche Phänomen.

Zweiter Gedanke Watchdog. Aber auch der ist deaktiviert.

Kann es sein, dass mein µC irgendwie Schrott ist? Ich hab einen Ausgang 
mit 5 mA belastet. War das vllt zuviel?

von jamest (Gast)


Lesenswert?

ahh sorry jetz hab ichs. Es war eine kalte lötstelle am Quarz... sowas 
blödes

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.