Forum: Mikrocontroller und Digitale Elektronik ATTiny402 IO Register


von Ranga D. (Gast)


Lesenswert?

Hi,
Vorab: Ich bin noch ziemlich neu im Mikrocontroller game. Ich habe 
vorher nur ein wenig mit dem Arduino rumgespielt. Nun möchte/muss ich 
ein Programm für den ATTiny402 schreiben, allerdings funtioniert bisher 
nach nun gut 10h genau nichts.

Die Registerschreibweise und das "Bitschubsen" an sich habe ich soweit 
verstanden, das Problem ist nur, dass ich nicht weiß, welches Register 
beim ATTiny402 für die GPIO-pins zuständig ist. Ich habe schon einige 
Register (PORTA.DIR, PORTA.OUT, PORTA.DIRSET etc) ausprobiert aber 
nichts funktionierte; Aus dem Datenblatt werde ich ebenfalls nicht 
schlau.
Da nichts funktioniert, kann ich mir nicht einmal sicher sein, ob 
eventuell etwas an meiner Hardware defekt ist.
Es würde mir schon ein Beispiel genügen, mit dem man alle Pins als 
Output und als LOW schaltet(in C).
Also irgendetwas in der Art von:

Register = 0xFF;        // alle output


while(1)
    Register |= 0;       // alle low


Ich hoffe, Ihr könnt mir weiterhelfen

(ich benutze einen atmel-ICE programmer und atmel-studio btw, falls das 
wichtig ist.)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Ranga D. schrieb:
> Ich habe schon einige Register (PORTA.DIR, PORTA.OUT, PORTA.DIRSET etc)
> ausprobiert aber nichts funktionierte
Was passiert "nicht" und was hast du stattdessen erwartet? Woher hast du 
denn diese Struct-Definitionen?

> Also irgendetwas in der Art von:
Zeig doch mal deinen kompletten Code, der nicht macht was er soll...

> Es würde mir schon ein Beispiel genügen, mit dem man alle Pins als
> Output und als LOW schaltet(in C).
Und ist Google grad echt kaputt?
Nein. Und der erste Link bringt dich der Sache schon näher:
https://www.google.com/search?q=avr+port+initialisieren
https://de.wikibooks.org/wiki/C-Programmierung_mit_AVR-GCC/_IO-Ports

Du könntest auch dort mal reinschauen, das hat schon einigen geholfen:
https://www.mikrocontroller.net/articles/AVR-Tutorial
https://www.mikrocontroller.net/articles/Hauptseite

> atmel-studio
Die Einstellungen dort passen aber soweit? Korrekter µC ausgewählt?

> atmel-ICE programmer
Fuses so gesetzt, dass sie zur Hardware passen (Oszillator 
intern/extern...)?

: Bearbeitet durch Moderator
von leo (Gast)


Lesenswert?

Ranga D. schrieb:
> while(1)
>     Register |= 0;       // alle low

Lerne zuerst mal C, Bitoperatoren usw.

leo

von Georg M. (g_m)


Lesenswert?

PORTA.DIR = 0xff;   //alle Pins an Port A als Ausgang

PORTA.OUTSET = 0b00000011;  // PA0 und PA1 auf HIGH

PORTA.OUTCLR = 0b00000010;  // PA1 auf LOW

von µC User (Gast)


Lesenswert?

Hallo

wenn auch schon älter:
Gerade als Anfänger nimm doch AVRs wählen zu den es dutzende von 
Tutorials gibt - egal ob die "Arduino Sprache", C, Assembler oder wenn 
es unbedingt sein muss auch Basic:

ATtiny 13, 25/45/85, ja selbst den 2313 und ATMega8 (ja auch der noch), 
88, 328,16,32

Die reichen eigentlich für fast alles, vor allem aber sind diese 
wesentlich besser gezielt für Anfänger, aber nicht nur für diese, 
dokumentiert und oft direkt werden innerhalb der Tutorials auch viele 
andere wichtige Dinge vermittelt (Bitmanipulation, Vorwiderstand LED, 
was und wie funktioniert der Stack, Interrupts... usw.).

Wie angedeutet: Gerade als (Hobby-) Anwender ist es sinnvoll sich erst 
mal ausgiebig mit einen µC zu beschäftigen und lernen der umfangreich 
dokumentiert ist, wo Sachen die in den einen Tutorial/Video/Buch nicht 
verständlich herüber kommen woanders verstanden werden.
Nutze die Vorteile die das Internet nun mal bietet.
Sei froh wir nicht mehr den harten, teuren und wenig unterstützten Weg 
gehen müssen wie es noch bis in den frühen 1990er Jahren der Fall war.
Je Exotischer der µC umso anspruchsvoller und Fehler trächtiger ist das 
erlernen, zumindest für einen (auch fortgeschrittenen) Anfänger und 
Hobbyisten.
Individualismus und "anders" sein ist in diesen Gebiet eher was für 
Profis oder "alte Hasen".

µC User

von Peter D. (peda)


Lesenswert?

Ranga D. schrieb:
> Register (PORTA.DIR, PORTA.OUT, PORTA.DIRSET etc) ausprobiert aber
> nichts funktionierte;

Wenn Du nicht Deinen konkreten Code zeigst, kann Dir auch niemand sagen, 
was daran falsch ist.
Die Hellseher sind grade im Urlaub.

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.