Forum: Mikrocontroller und Digitale Elektronik mega8 Port "C" tot


von bierschinken (Gast)


Lesenswert?

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"

von leberwurst (Gast)


Lesenswert?

in Zeile 42 wird der selbstzerstörende undokumentierte Befehl
"DP <port>" ausgeführt. DP = Destroy Port...
Er wurde auf Anweisung des Pentagons implementiert.

von ich (Gast)


Lesenswert?

JTAG ausgeschaltet ?

von bierschinken (Gast)


Lesenswert?

Bitte was? ;-) Ich kann damit leider nur begrenzt was anfangen....gehts 
nen bisschen genauer?!

von Mike (Gast)


Lesenswert?

Hat der Hersteller schon gemacht ;-)

von Mike (Gast)


Lesenswert?

Der Mega8 hat keinen JTAG, also kann er den schlecht ausschalten.

von Peter R. (pnu)


Lesenswert?

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 ?

von me (Gast)


Lesenswert?

> 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!

von bierschinken (Gast)


Lesenswert?

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...

von Klaus W. (mfgkw)


Lesenswert?

bierschinken schrieb:
> ... was du mit DDR meinst verstehe ich nicht ganz

Klarer Fall: das Tutorial wäre hilfreich. Für alle Beteiligten.

von Karl H. (kbuchegg)


Lesenswert?

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

von Peter R. (pnu)


Lesenswert?

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.

von Klaus W. (mfgkw)


Lesenswert?

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.

von bierschinken (Gast)


Lesenswert?

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!

von Klaus W. (mfgkw)


Lesenswert?

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
Noch kein Account? Hier anmelden.