-         

Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 32

Thema: Warum geht der Pic nicht richtig?

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.03.2005
    Ort
    Spanien
    Alter
    33
    Beiträge
    398

    Warum geht der Pic nicht richtig?

    Anzeige

    Nachdem ich seit längerer Zeit nichts mehr an meinem Roboter gemacht habe, wollte ich jetzt meinen alten reparieren und danach einen neuen bauen.

    Mein neuer brenner funktioniert schon mal. (Das war eine schwere Geburt)

    Ich hatte mir letztes JAhr eine Platiene (Lochraster) für den Pic gebaut mit LEDs, Tastatur, Schaltern... und es funktionierte auch alles.
    Jetzt geht sie aber nicht mehr. Alle Kontakte sind in Ordnung.

    Ich habe ein kleines und simples Programm in C geschrieben um nur 3 LEDs aufleuchten zu lassen.
    Das tuen sie aber nicht. Wenn ich mit meinem Finger (nicht mit etwas anderem wie Kugelschreiber...) berühre, dann leutet die 3. LED hell und die anderen 2 Flackern. Ist das ein Anzeichen fÚr viel "noise"?

    Ich habe den Pic dann mal so auf den Roboter gepackt. (Macht jetzt keinen Sinn, aber so konnte ich besser mit dem Multimeter messen).
    Am ersten und 2. Pin kommen zwichen 0.12V und 0.75V raus. Beim dritten 3,5V oder so.
    Eigendlich müssten da ja jetzt überall 5V sein.

    Hat jemand eine Ahnung?

    Ich glaube zwar nicht, dass das Programm dran schuld ist, aber ich poste es mal trotzdem.




    Code:
    #include <pic1687x.h>
    #define PORTBIT(adr, bit)	((unsigned)(&adr)*8+(bit))
    
    static bit LED0 @ PORTBIT(PORTA, 0);
    static bit LED1 @ PORTBIT(PORTA, 1);
    static bit LED2 @ PORTBIT(PORTA, 2);
    
    void main (void) 
    {
        TRISA = 0x00;
        PORTA = 0b00000000;	 
    
        while (1){     	
           LED0 = 1;
           LED1 = 1;
           LED2 = 1;
        }//while 
    
    }//()

    Falls das noch weiterhilft: als Quarz habe ich 10MHz am Pic 16F876


    Viele Grüsse,
    Tornado

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.10.2007
    Ort
    Bayern
    Alter
    29
    Beiträge
    116
    Hi

    Also ich kenne Compiler bei denen muss man im Programmcode noch die ganze Config angeben, wie z.B. Takktquelle, ... .

    Dann probier erstmal folgenden Code im main-Teil:
    Code:
    while (1) {
    PORTA = 0b00000111;
    delay_ms(500);
    PORTA = 0b00000000;
    delay_ms(500);
    }
    Ob dein Compiler den delay_ms Befehl kennt weiß ich nicht, probiers einfach mal aus oder such im Handbuch nach einem anderen Befehl der eine definierte Pause erzeugt.

    Blinken die 3 LEDs an RA0 - RA3 dann immer noch nicht dann musst Du die Config noch im Compiler mit angeben (eigentlich sowieso nötig - merk ich grad - weil der Befehl delaqy_ms aus der Taktfreuqenz dann den entsprechenden Code generiert um die definierte Zeit zu warten!!!)

    mfg
    Benny

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.03.2005
    Ort
    Spanien
    Alter
    33
    Beiträge
    398
    Also ich musste die Taktfrequenz glaube ich nie eingebem.
    Als ich mit Servos was gemacht habe, da habe ich dass dann schon gemacht, aber sonnst nicht.

    Das Programm was jetzt nicht geht ging ja ausserdem vorher schon mal.

    Ich habe dienen Code ausprobiert, tut sich aber nichts.

    ICh hatte damals auch ein kleines Night Rider Lauflicht programiert. Das habe ich jetzt auch noch mal rausgeholt.
    Eine LED geht manchmal an.
    Und ich habe auf dem Pic rumgedrückt, und habe ein einziges mal dann sehen können, dass die erste LEd anging, dann die 2. und dann die 3.
    Das wars dann aber auch schon mit dem Erfolg.

    Vieleicht sollte ich mir eine neue Versuchsplatiene für den Pic bauen.

    Was für einen Quarz und welche Kondensatoren für ihn würdet ihr mir empfehlen?

    Viiele Grüsse,
    tornado

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.10.2007
    Ort
    Bayern
    Alter
    29
    Beiträge
    116
    Hi

    Du sagst auf der Testplatine lief es vorher, jetzt aber ncihtmehr...
    Also gehe ich auch davon aus das Du den MCLR extern mit einem Pullup auf High ziehst.

    Jetzt kanns eigentlich nur noch an der Konfiguration liegen. Fusebits nochmal überprüfen und einfach mal den internen OSC aktivieren.

    Du schreibst auch dein Brenner funktioniert jetzt endlich, also schreiben und anschließendes lesen liefert das selbe zurück? (nur mal um den Brenner 100% auszuschließen)
    Oder PIC mal aus dem Brenner raus bzw. ICSP Kabel abziehen (damit Reset auf High gehen kann)

    Wenn das immer noch nicht funktioniert dann schreib ich mal ein Programm das diese LEDs blinken lässt - wenn das dann auch nicht funktioniert kannste wenigstens den Code als Fehlerquelle ausschließen!

    mfg
    Benny

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.03.2005
    Ort
    Spanien
    Alter
    33
    Beiträge
    398
    Ich werde den Fusebit noch mal überprÚfen.
    den Brenner können wir 100% ausschliessen. Checksum ist OK

    Nach dem Brennen kommt der PIC aus dem Brenner und auf die andere Platine (damit mÜsste reset ja auf high gehen, oder?).

    Wäre toll wenn du mir einen kurzen Code schicken könntest.

    viele GrÜsse,
    tornado

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.10.2007
    Ort
    Bayern
    Alter
    29
    Beiträge
    116
    Zitat Zitat von tornado
    Nach dem Brennen kommt der PIC aus dem Brenner und auf die andere Platine (damit mÜsste reset ja auf high gehen, oder?).

    Wäre toll wenn du mir einen kurzen Code schicken könntest.
    Hi

    Wenn dort ein 10k Widerstand gegen Vcc verbaut ist dann ja, ein interner Pullup (wie bei den AVRs gibt es hier nicht).

    Was für einen PIC verwendest Du?

    mfg
    Benny

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.03.2005
    Ort
    Spanien
    Alter
    33
    Beiträge
    398
    Hi
    ich verwende einen PIC 16F876(A)

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.10.2007
    Ort
    Bayern
    Alter
    29
    Beiträge
    116
    So

    Also habs jetzt erstellt damits mit einem 10 MHz Quarz betrieben werden muss. Config liest der Programmer ja automatisch ausm hex-File.

    mfg
    Benny
    Angehängte Dateien Angehängte Dateien

  9. #9
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.03.2005
    Ort
    Spanien
    Alter
    33
    Beiträge
    398
    danke, ich werde das morgen dann zu Hause direkt mal ausprobieren

  10. #10
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.03.2005
    Ort
    Spanien
    Alter
    33
    Beiträge
    398
    Ich habe das jetzt mal ausprobiert aber es ist das Selbe wie vorher.
    Nur wenn ich den Quarz mit dem Finger berÜhre, leuten die LEDs.

    Wenn ich dann noch ein Bein vom PIc anfasse, leuchten die LEDs heller.

    Ich werde dann mal eine neue Testplatiene bauen, oder was meint ihr?

Seite 1 von 4 123 ... LetzteLetzte

Berechtigungen

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