Fang die for-schleife mal mit "out = 0" an., damit die LED mal leuchtet.
Ich mißtraue deiner pause-funktion. Laß den Aufruf "pause();" mal weg.
wie ist den "i" definiert ? kann 1000 überhaupt erreicht werden ?
Hiho,
ich habe einen PIC16F877 mit 20MHz. Diesen hab ich mit ICPROG mit einem beispiel programm beschrieben, sodass die LED an RB0 eigentlich mit 1Hz blinken sollte. Ich habe den PIC auch verified. Die Vdd ist bis auf 1mV stabil! Der Wachhund ist aus und kann also net stören! Ich habe dieses Beispiel Programm genommen:
Das Problem: Die LED, die an RB0 angeschlossen ist, leuchtet garnicht!!! Woran um alles in der Welt liegt das?????Code:void pause() { OPTION = 3; TMR0 = 99; while (TMR0); } void main() { TRISB = 0b.1111.1110; bit out @ PORTB.0; for(;;) { out = 1; for(char i = 0; i < 1000; i++) { pause(); } out = 0; for(char i = 0; i < 1000; i++) { pause(); } } }
P.S.:Ich habe keine Erfahrung mit µC's. Das sind alles meine ersten Versuche!
Also schon mal DANKE!
mfg BuschenSen
Fang die for-schleife mal mit "out = 0" an., damit die LED mal leuchtet.
Ich mißtraue deiner pause-funktion. Laß den Aufruf "pause();" mal weg.
wie ist den "i" definiert ? kann 1000 überhaupt erreicht werden ?
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
also, dein Fehler liegt in der Ersten (und damit auch 2.) for-schleife... Eigentlich gaaanz einfach und PickNick hatte es auch gefunden . Ein char (=byte) kann nur von 0 bis 255 zählen, dann läuft er über, also zählt wieder von 0 los. Ist eine einfache Unendlichschleife, d.h. da kommst du erst raus, wenn du deinem PIC den Saft wegnimmst um ihn wieder in den Brenner zu stecken
Also, die 1000 mal auf 255 ändern und probieren. Wenn es dann noch immer nicht geht, guck dir mal die Pause an, sollte aber eigentlich so gehen...
MfG
Mobius
Lesezeichen