-         

Ergebnis 1 bis 8 von 8

Thema: Startprobleme

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.05.2006
    Alter
    29
    Beiträge
    122

    Startprobleme

    Anzeige

    Hallo zusammen...

    Ich bin noch ziemlich neu bei den Mikroprozessoren und bin zur Zeit ein bisschen am ausprobieren, doch weit bin ich noch nicht gekommen.

    Ich verwende einen pic16f628a mit einer selbstgebeuten Testplatine.
    Darauf möchte ich zum Beginn eine LED zum Blinken bringen.


    Den Quellcode habe ich teilweise von sprut.de übernommen:

    list p=16f628a
    include "p16f628a.inc"
    main

    loops Equ 0x22
    loops2 Equ 0x23

    errorLEVEL -302

    Init
    bsf STATUS, RP0
    movlw B'00000000'
    movwf TRISB
    bcf STATUS, RP0
    clrf PORTB

    ; LED einschalten

    bsf PORTB,5

    Loop

    call Wait
    bcf PORTB,5
    call Wait
    bsf PORTB,5
    goto Loop

    Wait
    movlw D'250'
    movwf loops

    Wai
    movlw .249
    movwf loops2
    Wai2 nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    decfsz loops2, F
    goto Wai2

    decfsz loops, F
    goto Wai
    retlw 0

    end


    Ich hab dann den Code in ein HEX-File assembliert (mit dem Tool vom Microchip) und mit dem Galep-4 auf den Chip gebrannt. Wenn ich den Chip nun in die Platine einsetze und Strom drauf gebe, passiert gar nichts...

    Jedoch kann es nicht an der Platine liegen, denn die funzt ohne den Chip.
    Der WatchDog-Timer ist auch ausgeschaltet, den Takt habe ich auf HS eingestellt (20mhz-Quarz) und das Brennen funktioniert ohne Fehler.

    Sieht hier jemand einen dummen Beginner-Fehler oder so was?

  2. #2
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.970
    Hallo orph!

    Ich vermute, dass der PIC nicht läuft, weil Du Ihm in Deiner .asm Datei die Konfiguration nicht definiert hast. Im Code sehe ich keine Fehler.

    MfG

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.05.2006
    Alter
    29
    Beiträge
    122
    danke für die Antwort

    Ich habe jetzt noch zwischen dem Befehl zur Fehlermeldungsunterdrückung und dem Init-Befehl die folgende Zeile eingefügt:

    __CONFIG _PWRTE_ON & _WDT_OFF& _HS_OSC

    Doch auch damit konnte ich keinen Erfolg erziehlen.

    gruss orph

  4. #4
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.970
    Dann bleibt noch MCLR. Versuche es, bitte, noch _MCLRE_OFF dazu schreiben. Ich hatte am Anfang damit gleiches Problem, und seit dem steht das bei mir immer drin. Das ermöglichst das Pin 4 (RA5) auch als I/O zu benutzen. Wenn Du einen Reset Taster an dem Pin hast, muss das Pin mit pull-up ca. 10 kOhm an +Vcc angeschlossen sein und kannst Du _MCLRE_OFF weg lassen.

    MfG

    P.S. Ich weiss nicht ob es Bedeutung hat, aber die Konfigurationszeile steht üblich direkt nach include xxx.inc .

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.05.2006
    Alter
    29
    Beiträge
    122
    Hallo PICture,

    Ich habe deinen Rat weiter befolgt und auch noch MCLRE in die Konfiguration hineingenommen und sie direkt unter include gestellt.
    Doch auch dies brachte mir keinen Erfolg.

    Nun habe ich jedoch gemerkt, dass ich die beiden Kondensatoren, die zwischen den Quarz und Masse kommen sollten, vergessen habe einzubauen. Ist dies möglicherweise der Grund, das nichts läuft?
    (Da ich eh noch andere Bauteile benötige, werde ich mir auch noch solche Kondensatoren kaufen, doch welche kann man dort verwenden? Ich nehme mal an, es werden normale Elektrolyt-Kondensatoren verwendet, doch mehr weis ich nicht.)

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.12.2005
    Ort
    Euskirchen-Großbüllesheim
    Alter
    67
    Beiträge
    2.063
    An den 20MHz-Quarz kommen 2 kleine keramische Kondensaoren mit 10...22 pF (Rastermaß 2,54 mm). Es handelt sich hier um eine höhere Frequenz, wo Elkos nichts zu suchen haben.
    Wichtig ist ein PullUp-Widerstand 4,7...47k vom Reset-Pin nach +5V.
    PIC-Beispiele: http://www.domnick-elektronik.de/picasm.htm
    Fehler-Checkliste: http://www.domnick-elektronik.de/piccheck.htm
    __CONFIG _CP_OFF & _WDT_OFF & _XT_OSC & _PWRTE_ON & _LVP_OFF
    MfG Karl-Heinz
    HobbyElektronik hier klicken ....

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.05.2006
    Alter
    29
    Beiträge
    122
    Jeah, vielen Dank für die Super Infos.

    Nur das mit dem PullUp-Widersand versehe ich noch nicht ganz.
    Ich nehme an, dass dieser ein normaler Metall-Widerstand sein sollte, oder? Doch wieviel Ohm brauche ich dort nun, zwischen 4.7 und 47 k ist noch eine grosse Auswahl .

    Gruss

  8. #8
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.970
    Ich habe schon früher 10kOhm genannt, hast Du warscheinlich übersehen. Kann auch Kohleschicht sein (billiger).
    Gut, dass Du die fehlende Kondensatoren selber bemerkt hast, sonst hätten wir noch einege Zeit dafür verloren.

    MfG

Berechtigungen

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