-
        

Ergebnis 1 bis 3 von 3

Thema: Problem mit 16F887 und Timer0

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    02.03.2008
    Beiträge
    64

    Problem mit 16F887 und Timer0

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hi zusammen,

    Wollte letzte Woche mein eigen zusammengebasteltes PIC16F887 Board testen.
    Leider will der uC nicht so recht. Zuerst hab ich einfach mal alle Ausgänge gesetzt und die Leds geprüft, das passt auch.
    Als nächstes war dann ein Lauflicht dran, was einfach nicht funktionieren will. Das Programm ist ein altes Beispiel für den
    PIC16F690 (da funktionierts), daran hab ich nichts geändert, da ich keine Unterschiede im Datenblatt fand.

    Die Led an PORTC 0 leuchtet und manchmal geht sie mal ne Sekunde aus
    oder auch länger, manchmal blizt sie auch etwas auf. Kurz, sie macht was sie will. Die anderen Leds sind immer aus.


    Hier noch der Code:

    Code:
    #include <pic.h>
    
    void delay10( char n);
    
    void main( void)
    {
      TRISC = 0;
    
      while(1)
        {
            PORTC = 1;
            delay10(100);
            PORTC = 2;
            delay10(100);
            PORTC = 4;
            delay10(100);
            PORTC = 8;
            delay10(100);
        }
    }
    
    void delay10( char n)
    
    {
        char i;
    
        OPTION = 7;
        do  {
            i = TMR0 + 39; /* 256 microsec * 39 = 10 ms */
            while ( i != TMR0)
                ;
        } while ( --n > 0);
    }
    Config1 11 1111 1111 0101 -> interner Takt
    Config2 111


    Könnte der uC eventuell auch defekt sein?

    Ach ja, ich progge mit Windows7, Mplab 8.56 und PicKit2

    Vielen Dank schon mal

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    03.09.2009
    Ort
    Berlin (Mariendorf)
    Beiträge
    938
    Bei Microchip gibt es eine Application Note zur Migration 16F87X nach 16F88X:

    http://ww1.microchip.com/downloads/e...Doc/41305A.pdf

    Hier geht es um die Unterschiede des !designierten Nachfolgers! zu seinem Vorgänger; selbst die sind schon erheblich - auch bei der Port-Konfiguration!

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    02.03.2008
    Beiträge
    64
    Hab noch ANSEL im Code hinzugefügt:

    Code:
    #include <pic.h>
    
    void delay10( char n);
    
    void main( void)
    { ANSEL = 0;
      ANSELH = 0;
      TRISC = 0;
    
      while(1)
        {
            PORTC = 1;
            delay10(10);
            PORTC = 2;
            delay10(10);
            PORTC = 4;
            delay10(10);
            PORTC = 8;
            delay10(10);
        }
    }
    
    void delay10( char n)
    
    {
        char i;
    
        OPTION = 7;
        do  {
             TMR0 = 0; /* 256 microsec * 39 = 10 ms */
            while ( TMR0 != 39)
                ;
        } while ( --n > 0);
    }
    Hat aber nichts gebracht, die erste LED flackert nur ganz schwach.

Berechtigungen

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