Hi ich bin neuling und hab mir nen Atmega16 besorgt ich programmiere in c Die port ausgabe funzt aber ich bekomme keine daten in meinen My DDRC = 0x00; PORTC = 0xFF; flag = ~PINC; if (flag == 200) ..... was habe ich da oben Falsch gemacht? mdf
Was wenn 200 nicht das Einerkomplement von PINC ist? PULLUP DISABLE vielleicht gesetzt? Allgemein die INIT vom µC prüfen!
ganz einfach ich hab zwei printhart pt165 genommen die habe ich am port c richtig angeschlossen leider geben sie halt ein negiertes signal ab da low aktiv deshalb die ~ mfg
Ich weiss leider nicht was ein PT165 ist, aber das Ergebnis wird nicht 200 sein wenn sonst alles stimmt.
Wie wärs, wenn du mit DDRC = 0x00; PORTC = 0xFF; flag = PINC; if (flag == 255) anfängst? Das Wort "debugging" haste noch nicht gehört. Ich wars.
An welchen Pins hängen die ominösen PT165 denn? Denk auch daran, dass beim Mega16 an Port C das JTAG-Interface hängt und die Pins 2..5 nur dann benutzt werden können, wenn das JTAG deaktiviert ist (JTAGEN-Fuse nicht programmiert). Im Auslieferungszustand des µC ist das JTAG-Interface aktiv! Ansonsten musst Du die gewünschten Bits maskieren. Bei solchen Abfragen ist es übrigens sinnvoll, die Zahlen in Hex oder gleich in Binär zu schreiben. Dezimalwerte sind da wenig anschaulich...
JTAG-Deaktivierung geht über die Fuses. Sollte Dein Programmiergerät unterstützen. Einfach mal das Dateblatt des AVRs lesen. Grüße, Freakazoid
Indem man das JTAGEN-Fusebit beim Programmieren des Chips entsprechend "entprogrammiert".
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.