Hi, ich habe folgendes Problem. Ich arbeite gerade mit dem Picdem 2 plus demo board und einem PIC16f877A. Wie man auf dem Foto sehen kann habe ich das rote Kabel mit RB0 verbunden und das braune mit Masse. Es geht darum das ich eine einfache TTL prüfung durchführe mit dem Widerstand(100 ohm groß) als ersten Test. Also eine gut/schlecht Kennung. Im Datenblatt steht das der PIC16f877a an dem Port RB0-RB7 interne pull up Widerstände hat. Wenn ich also jetzt das potential von RB0 auslesen würde müsste 0 rauskommen also low pegel. Aber wenn jetzt ein fehler auftritt z.B. ich durchtrenne rechts vom Widerstand das "beinchen" sollte an RB0 der pull up das Potential hochziehen und ich müsste den high pegel an RB0 erfassen müssen. Jetzt stellt sich das ganze schwieriger als gedacht ich kann nicht direkt auf RB0 zugreifen (!!! Programmiere übrigens in ASSEMBLER!!!) der Compiler meint dann "RB0 not previously defined" ich wollte den inhalt von RB0 auf dem LCD anzeigen lassen. Beim durchstöbern des Datenblatts habe ich auch entdeckt das RB0 bei Potentialwechsel einen Interrupt auslösen kann falls man das im OPTION_REG einstellt. Ich bräuchte also 2 Dinge : 1.) Assembler Code um RB0 auslesen zu können 2.) Assembler Code für Interrupt Service Routine Falls jemand sich mit Assembler oder diesem PIC auskennt bitte ich um Hilfe vielen Dank im voraus
Die Ports beim PIC 16F877 heissen PORTA, PORTB, PORTC und PORTD Den PIN RB0 kann Du z.B. so testen:
1 | BTFSS PORTB, 0 ; Bit 0 Port B testen, falls 1, dann nächsten |
2 | ; Befehl auslassen |
3 | CALL xxxx |
4 | NOP |
Ist Bit 0 von Port B gesetzt, macht er direkt bei NOP weiter, andernfalls wird erst xxxx aufgerufen. Mit BTFSC geht es genau andersherum. Alternative: Du weist RB0 dem Bit 0 an PORT B zu:
1 | #define RB0 PORTB, 0 |
2 | |
3 | ... |
4 | |
5 | BTFSS RB0 ; Bit 0 Port B testen, falls 1, dann nächsten |
6 | ; Befehl auslassen |
7 | CALL xxxx |
8 | NOP |
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.