Forum: Mikrocontroller und Digitale Elektronik Wo ist der Stackpointer des Tiny12?!


von Maxim (maxim) Benutzerseite


Lesenswert?

Bisher habe aus der AVR-Serie nur Mega32 und Mega8 programmiert. Jetzt 
muss ich ein Programm von einem Mega8 auf einen Tiny12 portieren. Wie 
initialisiere ich beim Tiny12 den Stackpointer? In der tn12def.inc habe 
ich keine Definitionen gefunden, die auf einen Stackpointer hinweisen 
und eine Konstante RAMEND gibt es auch nicht.

von Thomas W. (thomasw)


Lesenswert?

Moin!

Der Tiny12 hat kein SRAM.

MfG

von Michael U. (amiga)


Lesenswert?

Hallo,

schon mal ins Datenbeltt geschaut? Der Tiny12 hat keinen internen Ram...
Dazu gibt es einen kleinen Hardware-Stack.

Gruß aus Berlin
Michael

von Mike (Gast)


Lesenswert?

Da er keinen RAM hat gibt es keinen Stackpointer und auch kein RAMEND. 
Dafür gibt es einen 3 Level Hardware-Stack. Schau doch mal in die 
Anleitung. Dort steht auch "Not recommended for new designs".

von Maxim (maxim) Benutzerseite


Lesenswert?

Ich war etwas irritiert, weil im Blockschaltbild "STACK POINTER" auf 
"HARDWARE STACK" zeigt.

Der kann sich scheinbar nur drei Subroutinenaufrufe merken. Naja, sollte 
reichen ...

von Maxim (maxim) Benutzerseite


Lesenswert?

Jetzt jänge ich an einem anderen Problem.

Die Pins PB1 und PB2 brauche ich als Eingänge und PB3, PB4 als Ausgänge. 
Die Ausgänge funktionieren gut, aber bei den Eingägnen klappts nicht. 
Das Programm läuft im Simulator einwandfrei. Ich habe nun ein kleines 
Testprogramm ausprobiert, dass die Ausgänge auf 1 setzt, sobald an PB1 
+5V anliegen, aber auch das funktioniert nicht.

Die Suche im Datenblatt hat mich nur noch mehr stutzig gemacht. PB0, PB1 
und PB2 werden für die ISP benötigt. Aber diese Funktion nehmen die doch 
nur an, wenn Reset auf 0 liegt, oder? Also sollten die Pins im 
Normalbetrieb als IO-Pins funktionieren?

Der Tiny12 wird vom internen OC getaktet. Ich habe die Frequenz mit 
einem Oszi und einer Testroutine abgelesen, liegt bei etwa 1,2 MHz.

Was ist nur mit den Pins los?

von Winfried (Gast)


Lesenswert?

Kein Problem, außer Reset kannst du alle Pins benutzen. Zeig mal deinen 
Code...

(Reset geht natürlich unter gewissen Umständen auch...)

von Maxim (maxim) Benutzerseite


Angehängte Dateien:

Lesenswert?

Da ist nur das Wesentliche drin, da zu Testzwecken die anderen Routinen 
eh nicht benötigt werden. -> Anhang

von Maxim (maxim) Benutzerseite


Angehängte Dateien:

Lesenswert?

Ups. Hier ist die richtige Datei.

von Winfried (Gast)


Lesenswert?

Ich seh gar kein PINB, nur PORTB. Fürs einlesen brauchst du aber das 
Register PINB.

von Maxim (maxim) Benutzerseite


Lesenswert?

Aus dem Datenblatt:
"Port B as General Digital I/O

The lowermost five pins in port B have equal functionality when used as 
digital I/O pins.

PBn, General I/O pin: The DDBn bit in the DDRB register selects the 
direction of this pin, if DDBn is set (one), PBn is configured as an 
output pin. If DDBn is cleared (zero), PBn is configured as an input 
pin. If PORTBn is set (one) when the pin is configured as an input pin, 
the MOS pull-up resistor is activated. On ATtiny12 this feature can be 
disabled by setting the Pull-up Disable (PUD) bit in the MCUCR register. 
To switch the pullup resistor off, the PORTBn can be cleared (zero), the 
pin can be configured as an output pin, or in ATtiny12, the PUD bit can 
be set. The port pins are tri-stated when a reset condition becomes 
active, even if the clock is not running."

Verstehe ich nicht ganz. Was ist MOS?

von Maxim (maxim) Benutzerseite


Lesenswert?

Winfried wrote:
> Ich seh gar kein PINB, nur PORTB. Fürs einlesen brauchst du aber das
> Register PINB.

Ok, werde ich gleich ausprobieren.

von Maxim (maxim) Benutzerseite


Lesenswert?

Danke! Es tut sich was. Ich musste im Quellcode oben in den Definitionen 
PINB statt PORTB verwenden.

von Winfried (Gast)


Lesenswert?

Und bei Eingängen auch PORTB passend beschreiben, um den internen Pullup 
ein- oder auszuschalten...

von Rolf Magnus (Gast)


Lesenswert?

> Verstehe ich nicht ganz. Was ist MOS?

"Metal Oxide Semiconductor"

von Falk B. (falk)


Lesenswert?

Ohne MOS nix LOS. ;-)

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.