-         

Ergebnis 1 bis 3 von 3

Thema: PIC16F877-20/P tut garnix

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    08.06.2004
    Ort
    Dortmund
    Beiträge
    10

    PIC16F877-20/P tut garnix

    Anzeige

    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:

    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();
              }
         }
    }
    Das Problem: Die LED, die an RB0 angeschlossen ist, leuchtet garnicht!!! Woran um alles in der Welt liegt das?????

    P.S.:Ich habe keine Erfahrung mit µC's. Das sind alles meine ersten Versuche!

    Also schon mal DANKE!

    mfg BuschenSen

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    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.

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.10.2004
    Ort
    ferd. Waldmüllerg. 7/2
    Alter
    32
    Beiträge
    456
    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

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •