Hallo, ich habe das Problem, dass auf meinem mega8 der komplette PORT C (bzw das was davon am mega8 exisiert und nicht anderweitig besetzt ist) nicht als Ausgang schalten lässt. Ursprünglich wollte ich ein TWI darauf realisieren, als das nicht ging hab ich mal versucht an den Ports LEDs blinken zu lassen, ohne Erfolg..........auf Port B und D funktioniert es jemand ne Idee woran das liegt? Konfiguration sieht folgendermaßen aus: -Pollin-Board -ISP-Programmmer -Codevision AVR Den ursprünglichen Thread zum TWI findet ihr hier: Beitrag "Master/Slave TWI von mega32 auf mega8 kopieren"
in Zeile 42 wird der selbstzerstörende undokumentierte Befehl "DP <port>" ausgeführt. DP = Destroy Port... Er wurde auf Anweisung des Pentagons implementiert.
Bitte was? ;-) Ich kann damit leider nur begrenzt was anfangen....gehts nen bisschen genauer?!
Vielleicht ist die Adresse des Daten-Richtungsregisters (0x14 )falsch eingegeben ? Außerdem bekommt portc sein VCC über den Anschluss AVCC, soweit ich weiß. Ist also auch an AVCC Spannung angelegt ?
> Naja ich bin im Moment mit meinem Latein am Ende, bleibt mir nur noch
Y den Code hier zu posten.......ich wäre sehr dankbar wenn mal jemand
Y drüber schaut.....
Dann mach das endlich!
Peter R. schrieb: > Vielleicht ist die Adresse des Daten-Richtungsregisters (0x14 )falsch > eingegeben ? > > Außerdem bekommt portc sein VCC über den Anschluss AVCC, soweit ich > weiß. > Ist also auch an AVCC Spannung angelegt ? Also spannung am AVCC ist vorhanden, was du mit DDR meinst verstehe ich nicht ganz DDRC=0x7F ist in der Initialisierung mit drin. Mit der Aussage von "me" kann ich leider relativ wenig anfangen, würde mich aber über weitere Anregungen freuen...
bierschinken schrieb: > ... was du mit DDR meinst verstehe ich nicht ganz Klarer Fall: das Tutorial wäre hilfreich. Für alle Beteiligten.
Klaus Wachtler schrieb: > bierschinken schrieb: >> ... was du mit DDR meinst verstehe ich nicht ganz > > Klarer Fall: das Tutorial wäre hilfreich. Für alle Beteiligten. Na ja. Es ist der übliche Codevision Code Beitrag "Master/Slave TWI von mega32 auf mega8 kopieren" voll mit Binär bzw Hex Konstanten und ich denke mal die wenigsten haben Lust, dieses unleserliche Konglomerat auseinanderzudividieren und mit dem Datenblatt auf den Knien jede einzelne Registerzuweisung zu überprüfen. Und wenn ich sowas sehe:
1 | //Defintion for TWCR (Control Register)
|
2 | #define TWINT 7 //TWI Interrupt Flag
|
3 | #define TWEA 6 //TWI Enable Acknowledge Bit
|
4 | #define TWSTA 5 //TWI START Condition Bit
|
5 | #define TWSTO 4 //TWI STOP Condition Bit
|
6 | #define TWWC 3 //TWI Write Collision Flag
|
7 | #define TWEN 2 //TWI Enable Bit
|
8 | #define TWIE 0 //TWI Interrupt Enable
|
dann schrillen bei mir sowieso alle Alarmglocken mich da rauszuhalten. Das ist viel Analyse-Arbeit für meistens einen kleinen Fehler
Ich hab mal in den Code reingeschaut. ... also den tu ich mir nicht an. DDRC ist das Daten-Richtungsregister des Port C. Eine Eins in diesem Register macht jeweils das zugehörige Bit zum Ausgang. Zwar ist anfangs DDRC = 7F definiert aber irgendwo im Code wird sicher eine Null daraus und dann ists halt aus mit LED-sehen. Denn als Eingang geschaltet sind Port-Leitungen so hochohmig, dass eine LED nicht sichtbar darauf reagiert. Programmiere doch eine ganz einfache Schleife in den Kontroller, in dem PortC getoggelt wird und hänge eine LED dran. Dann zeigt sich gleich, ob es das Port tut oder nicht und der Hardware-teil ist geklärt. Ein Hardware-Defekt bei dem ein ganzes Port plötzlich nix tut und die anderen Ports einwandfrei sind ist so gut wie ausgeschlossen. Der Bug steckt sicher in der Software.
Karl heinz Buchegger schrieb: > Na ja. > Es ist der übliche Codevision Code > Beitrag "Master/Slave TWI von mega32 auf mega8 kopieren" > voll mit Binär bzw Hex Konstanten und ich denke mal die > wenigsten haben... Soweit denke ich gar nicht nach; wenn die Bedeutung von DDR nicht klar ist, fehlt es doch an elementarsten Grundlagen.
Klaus Wachtler schrieb: > Soweit denke ich gar nicht nach; wenn die Bedeutung von > DDR nicht klar ist, fehlt es doch an elementarsten Grundlagen. Was ddrc bedeutet ist mir durchaus. Ich hab nur nicht verstanden was Peter R mit "(0x14)" sagen wollte...naja danke trotzdem an Peter. Ich hab den Fehler (zumindest den unmittelbaren;-) gefunden....leider sind auf dem Pollin-Board die I/O-Pins des mega8 von PORTC nicht auf die Anschlüsse "C" des Pollinboards gelegt, sondern auf "A". Zugegebenermaßen nicht besonders logisch.....und ich hatte mich schon gewundert warum die LEDs an PORTA des Pollin-boards geblinkt haben obwohl der mega 8 garkeinen PORTA besitzt.....in diesem Sinn gut nacht!
bierschinken schrieb: > Ich hab den Fehler (zumindest den unmittelbaren;-) gefunden....leider > sind auf dem Pollin-Board die I/O-Pins des mega8 von PORTC nicht auf die > Anschlüsse "C" des Pollinboards gelegt, sondern auf "A". Redest du vom Pollin-Addon-Board? Dessen Beschriftung erschließt sich in der Tat nicht in nüchternem Zustand.
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.