Moin!
Kennt sich hier zufällig jemand mit dem oben genannten uC aus?
Wollte das erstmal fragen, bevor ich hier mit weiteren Details nerve...
CU
sushi
Sie sind in Begriff, Telefon-Treff zu verlassen, um auf die folgende Adresse weitergeleitet zu werden:
Bitte beachten Sie, dass wir für den Inhalt der Zielseite nicht verantwortlich sind und unsere Datenschutzbestimmungen dort keine Anwendung finden.
Moin!
Kennt sich hier zufällig jemand mit dem oben genannten uC aus?
Wollte das erstmal fragen, bevor ich hier mit weiteren Details nerve...
CU
sushi
LoL, ich kapier keinen der drei von dir genannten Begriffe..:D Worum gehts bitte?
*lol*
Ok, dann das ganze nochmal auf deutsch:
Ich wollte wissen ob hier jemand ein bißchen Erfahrung mit dem Microcontroller PIC 16F877 von Microchip im Zusammenspiel mit dem zugehörigen In-Circuit Debugger (ICD) hat. Das Gespann produziert bei mir nämlich ziemlich seltsame Fehler.
besser?
MfG
Sushi
Hi!
Hab mit dieser Kombination vor kurzem Teile meiner Dipl.-Arbeit bestritten... kenne mich mit dem Zeugs also schon ein wenig aus... kannst gerne hier das Problem posten oder mir per PN schreiben...
Gruß WhiteNoise
Super!
Im TT findet man wirklich immer den geeigneten Gesprächspartner :cool:
Mein Problem:
Ich habe den Port A als digitalen Ausgang konfiguriert.
Wenn ich nun z.B. Bit 1 im Register PORTA setze wird dies im SFR Fenster auch brav angezeigt und ich messe den zugehörigen Pin in der Schaltung auch als High. Setze ich nun gleich danach Bit 2, wird dies im SFR Fenster nicht angezeigt ( Bit 1 bleibt aber in dieser Anzeige auf 1). In der Schaltung messe ich den Pin für BIT 2 aber als High und (jetzt kommt das wirkliche Problem) den Pin für BIT 1 aber wieder als LOW!? Wie kommt denn sowas? Wenn ich den Code nicht im ICD durchsteppe, sondern im Simulator von MPLAB läuft alles einwandfrei!
Ich hoffe das war verständlich beschrieben. Ich hänge Dir hier nochmal nen Codeschnipsel ran:
ORG 0x0000
NOP
BCF STATUS,RP1
BSF STATUS,RP0
CLRF TRISA
MOVLW 0xFF
MOVWF ADCON1
BCF STATUS,RP0
BCF STATUS,RP1
CLRF PORTA
BSF PORTA,1
BSF PORTA,2
END
Damit läßt sich bei mir dieses seltsame Verhalten reproduzieren. Ich hab schon vier andere 16F877 durchprobiert, bei allen passierte das Selbe. Am Controller liegts also wohl nicht...
Wäre super, wenn Du eine Idee hättest, woran das liegen könnte!
MfG
sushi
Ich habe auch schon einiges mit den PIC´s gemacht allerdings ohne ICD sehe allerdings keinen grund warum Port A bit1 auf low geht.
Gruß Norge
Hallo!
Nur so eine Idee...
Warum setzt du ADCON1 auf 0xFF? wäre da nicht 0xF7 besser?
(Hab aber grad kein Datenblatt vom 16F877 zur Hand. Nur eines vom 16F870, deshalb nur eine Vermutung...)
XdreaM
Und genau das ist mein Problem: Ich sehe auch keinen Grund warum das Bit auf Low gehen sollte. An der äußeren Beschaltung kanns ja wohl nicht liegen, da alle Pins als Ausgang geschaltet sind (mal abgesehen davon, das da eh nur ein bißchen TTL Logik dran hängt).
Wenn ich den Code ohne Debug Modul (dafür aber mit Delay's zwischen den BSF) in den Controller lade und mir dann mal anschaue was passiert: same, same.
Ich glaub ich muß nochmal die Sillicon Errata's durchwühlen... :mad:
Holla! Ich glaub ich sollte Feierabend machen für heute
Ich habs zwar noch nicht getestet, aber ich muß gestehen, da hab ich wohl einen Bock geschossen! Du hast recht! Ist auch beim 877 so... 0xF7 oder 0xF6 ist natürlich die richtige Einstellung für "all pins digital".
Ja, ja wie war das noch mit den Wald und den Bäumen?
Ich werds morgen gleich mal testen und das Ergebnis posten.
Vielen Dank und schönen Feierabend!
sushi
ZitatAlles anzeigenOriginal geschrieben von XdreaM
Warum setzt du ADCON1 auf 0xFF? wäre da nicht 0xF7 besser?
XdreaM
Mahlzeit!
Genau auf dieses Ergebnis bin ich nach dem Studium des Datenblattes auch gekommen. ADCON1 auf 0xF7 setzen. Sonst ist PIN A2 als Vref- und nicht als Digital I/O definiert...
Gruß WhiteNoise
Uuups.... im doppelten Sinne zu spät...
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!