mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATTiny402 IO Register


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Ranga D. (Gast)
Datum:

Bewertung
-1 lesenswert
nicht 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.)

Autor: Lothar M. (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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
Autor: leo (Gast)
Datum:

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

Lerne zuerst mal C, Bitoperatoren usw.

leo

Autor: Georg M. (g_m)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: µC User (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter D. (peda)
Datum:

Bewertung
1 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.