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.)
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
Ranga D. schrieb: > while(1) > Register |= 0; // alle low Lerne zuerst mal C, Bitoperatoren usw. leo
PORTA.DIR = 0xff; //alle Pins an Port A als Ausgang PORTA.OUTSET = 0b00000011; // PA0 und PA1 auf HIGH PORTA.OUTCLR = 0b00000010; // PA1 auf LOW
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.