Gast
#332658
Hallo ich bin am Verzweifeln: Ich habe eine folgende kleine Schaltung mit dem PIC16F628 aufgebaut: 3,3V SPG-Reg als Versorgung An RB0-RB3 je ein 1k Widerstand und dann eine LED auf Masse An RB4-RB7 je einen 4k7 Pullup und einen Schalter auf Masse So alles was ich (momentan noch) will, ist über die Schalter die LEDS an und aus zu schalten. Als Oszilator soll der Interne OSC des Pics verwendet werden. Hierzu habe ich ein kleines C-Programm (siehe ganz unten) für den CC5X-Compiler geschrieben mit MPLAB und dem CC5X das HEX-File generiert und dieses dann mit dem PIC Brenner5 Rev 5a von Sprut auf den PIC gebrannt. (Folgende Configuration: INTRC CLKOUT - Watchdog OFF - Power Up Timer OFF - Brown Out Enabled - Master Clear Enabled - Low Voltage Program Enabled - Data EE Read Protect Disabled - Code Protect OFF) Danach kommt der PIC auf die Schaltung aber irgendwie geht da nix an und aus. Ich kann mir nicht erklären warum nicht. Stimmen evtl. die Einstellungen nicht oder ist ein fehler im Programm? Es wäre nett wenn Ihr mir weiterhelfen könntet. Vielen Dank Jupp Hier noch schnell das Programm: /* Funktionsprototypen */ void Startup(void); /*--Globale Variablen---*/ /* Definitionen für die Belegung der IO-Ports */ #pragma bit S1 @ PORTB.7; /* Schalter 1 */ #pragma bit S2 @ PORTB.6; /* Schalter 2 */ #pragma bit S3 @ PORTB.5; /* Schalter 3 */ #pragma bit S4 @ PORTB.4; /* Schalter 4 */ #pragma bit L1 @ PORTB.3; /* LED 1 */ #pragma bit L2 @ PORTB.2; /* LED 2 */ #pragma bit L3 @ PORTB.1; /* LED 3 */ #pragma bit L4 @ PORTB.0; /* LED 4 */ /* Startup Code - Initialisierungen */ void Startup(void) PORTB = 0b.0000.0000; TRISB = 0b.1111.0000; /* Pin 4-7 als Eingang (1) Pins 0-3 als Ausgang (0) */ return; } /*===== Hauptprogramm ===== */ void main(void) { Startup(); /* Endlosschleife - Main Loop */ for(;;) { /* Schalter-Port ist pulled-up -> Wenn der Schalter betätigt ist, liegt der Port auf 0 = Low */ if (!S1) L1 = 1; else if (S1) L1 = 0; if (!S2) L2 = 1; else if (S2) L2 = 0; if (!S3) L3 = 1; else if (S3) L3 = 0; if (!S4) L2 = 1; else if (S4) L2 = 0; } }