Hallo Community, Fakten: ATMEGA644 mit Bootloader vorinstalliert Arduino SW zum Programmieren UM232 Eval Kit um SW per USB auf den uC zu bringen. Problem: Port B und D lässt sich Pinweise ansteuern (LED an aus) Port A und C lässt sich nur PORTweise ansteuern (entweder alle an oder aus). Was weiß ich: Der Quarz (20MHz) wurde ja über die Fuses beim Laden des Bootloaders definiert. Mein Programm ist ein simpler Blinkcode. Meine Init() DDRA = 0b11111111 // Alle Pins am Port A sind Ausgänge der Rest ist Pin an -> delay -> Pin aus Wo sage ich dem uC, dass die Pins am PortA nicht als ADCs genutz werden sondern als Digital IO´s? Am port B und D kann ich alles Pins wunderbar ansteuern. Machen ich das gleiche mit A und C leuchtet nichts. Irgendjmd. einen Tipp? Viele Dank
Hi >Wo sage ich dem uC, dass die Pins am PortA nicht als ADCs genutz werden >sondern als Digital IO´s? Solange der ADC nicht aktiviert ist sind alle Pins normale IOs. Und bei aktiviertem ADC ist auch nur ein Pin mit dem ADC verbunden. >Am port B und D kann ich alles Pins wunderbar ansteuern. Machen ich das >gleiche mit A und C leuchtet nichts. Sicher, das das JTAG-Interface abgeschaltet ist. Das würde 4 Pins vom PortC blockieren. MfG Spess
Hallo Spess, auch wenn der JTAG aktiviert ist (checke ich mal heute Abend), würde dass mir immernoch nicht erklären, wieso der PORTA (der eigentliche Port an dem ich etwas ausgeben will) nicht Pinweise angesteuert werden kann? Viele Grüße
Hi >auch wenn der JTAG aktiviert ist (checke ich mal heute Abend), würde >dass mir immernoch nicht erklären, wieso der PORTA (der eigentliche Port >an dem ich etwas ausgeben will) nicht Pinweise angesteuert werden kann? Dann machst du irgendwas falsch. MfG spess
Was aus deinem Eröffnungsposting für mich nicht so recht hervor geht: Hast du die Platine selbst gebaut? Wenn ja, dann überprüf noch mal, ob an AVcc auch die Versorgungsspannung anliegt. Das ist der Eingang, der den Port A (dort wo der ADC sitzt) mit Strom versorgt. Hast du dort nichts -> Port A funktioniert nicht richtig. Ansonsten: beschreib nicht deinen Aufbau, sondern zeig ihn. Schaltplan, ev. Bild vom Aufbau, Programmcode.
:
Bearbeitet durch User
Hallo und danke für eure Antworten. Schaltplan ist der der AVR Grundbeschaltung. Ich habe das ganze auf ein Steckbrett zusammengeschaltet. AVCC ist angeschlissen AREF ist auf VCC = 5V gezogen. Ihr habt recht, ich zieh das mal sauber in Eagle auf dann wird´s klarer. Aber da dass der Start meines Projektes ist, beschränkt es sich alles auf die Grundbeschaltung der AVRs. Aber ich versuch mehr Infos zu posten. Viele Grüße
Bernd Hubert schrieb: > Hallo und danke für eure Antworten. > > Schaltplan ist der der AVR Grundbeschaltung. Ich habe das ganze auf ein > Steckbrett zusammengeschaltet. AVCC ist angeschlissen AREF ist auf VCC = > 5V gezogen. Ihr habt recht, ich zieh das mal sauber in Eagle auf dann > wird´s klarer. Aber da dass der Start meines Projektes ist, beschränkt > es sich alles auf die Grundbeschaltung der AVRs. > > Aber ich versuch mehr Infos zu posten. > > Viele Grüße AREF gehört über 100nF gegen GND und nicht auf Vcc. mfg.
Hallo Leute, Im Anhang seht Ihr meine Beschltung. Mit nachfolgendem Quellcode Blinkt immernoch die LED aus PA0. PB0 bleibt aus. Das ist mein gesamter Code den ich in die Arduino Console eintippe. Ist da schon etwas falsch? AREF ist über 100nF auf GND geschaltet. Ist noch etwas zu beachten? Kann es sein dass im Bootloader etwas vordefiniert wurde?
1 | void setup(){ |
2 | // PC0 als Output
|
3 | //DDRA = 0x01;
|
4 | pinMode(PA0, OUTPUT); |
5 | pinMode(PB0, OUTPUT); |
6 | }
|
7 | |
8 | void loop(){ |
9 | digitalWrite(PA0, HIGH); |
10 | digitalWrite(PB0, HIGH); |
11 | delay(100); |
12 | |
13 | digitalWrite(PA0, LOW); |
14 | digitalWrite(PB0, LOW); |
15 | // PC0 löschen
|
16 | // PORTA &= ~(1<<PA0);
|
17 | delay(100); |
18 | }
|
Viele Grüße
Schreib mal anstelle von "PB0" "0". Also: pinMode(0, OUTPUT); und digitalWrite(0, HIGH); http://www.hobbytronics.co.uk/atmega644-arduino
Hallo Markus, vielen vielen Dank! Das war der Fehler.. Die Ports sind von 0 .. 31 durchnummeriert! Nicht nach PA PB PC PD. Jetzt läufts! Viele Grüße
Bernd Hubert schrieb: > vielen vielen Dank! > > Das war der Fehler.. Die Ports sind von 0 .. 31 durchnummeriert! Nicht > nach PA PB PC PD. > > Jetzt läufts! Bitte. Ja, das ist "der Preis" mit den Arduino-Funktionen. Die verwenden leider ihre eigene Bezeichnung. Das kann manchmal ganz schön verwirrend sein.
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.