- Labornetzteil AliExpress         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Blinkfrequenz mit PIC 16F629

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    30.05.2011
    Beiträge
    26

    Blinkfrequenz mit PIC 16F629

    Anzeige

    LiFePo4 Akku selber bauen - Video
    HI Leute hoff ihr könnt mir weiterhelfen, hab mich endlich an´s PIC programmieren rangewagt funktioniert auch super aber ich beiß mir hier die Zähne aus. Und zwar möchte ich mit dem PIC 12F629 eine LED ansteuern bei der ich die Frequenz über das Programm verändern kann. Hier das Programm :

    clrf GPIO
    clrff
    clrw


    MOVLW 0x500
    MOVWF 0x20

    bsf STATUS,GPIO2
    bcf TRISIO,2
    bcf STATUS,GPIO2

    LOOP
    DECFSZ 0x20,1
    GOTO LOOP


    bsf GPIO,2


    MOVLW 0x500
    MOVWF 0x20

    LOOP3
    DECFSZ 0x20,1
    GOTO LOOP3

    bcf GPIO,2


    end



    Hab den Internen OSC verwendet mit 4Mhz. Wieso kann ich den Wert den ich in das Arbeitsregister schreiben will nicht x beliebig erhöhen? bzw habt ihr ne Idee wie ich das Programm anders schreiben könnte? Danke schon im Vorraus mfg Gremlin

  2. #2
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Was meinst du mit beliebig erhöhen?
    Das Arbeitsregister im PIC ist 8-bit groß d.h. du kannst dort Zahlen zwischen 0 und 255 drin speichern. Wenn die Zahl jetzt 256 beträgt ist das eine 9 Bit Zahl und passt nicht mehr ins Arbeitsregister.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    30.05.2011
    Beiträge
    26
    Mit beliebig erhöhen mein ich wenn ich die zahl 256 ins Arbeitsregister lade dann bekomm ich auf meinem oszi eine andere Frequenz als wenn ich 500 eingebe das ist das was mich stutzig macht. Wie könnte ich das Programm anders schreiben damit ich eine Blinkfrequenz von 1Hz oder 2 Hz erreiche hast du da vllt eine Idee? mfg Gremlin

  4. #4
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Du bekommst bei 256 eine andere Blinkfrequenz als eigentlich gedacht, weil 256 eine 9-bit Zahl ist und das Arbeitsregister nur 8 Bit aufnehmen kann.
    256 ist 1 0000 0000 und da nur 8 Bit ins Register reinpassen schreibt er im Endeffekt 0000 0000 und die 1 am Anfang wird abgeschnitten.
    500 ist 1 1111 0100 und dann schreibt er ins Arbeitsregister eine 1111 0100. Das sollte das ganze Problem sein. Wenn du mit 8-Bit nicht hinkommst musst du die Zahl halt in einen Low und einen High Teil aufteilen.
    Zum Beispiel die 500 wieder. 500 ist ja 1 1111 0100. Dann schreibst du in das Register was für den Low Teil der Zahl steht 1111 0100 und in das Register was für den High Teil steht 0000 0001. Und beim Zählen hast du dann auch jeweils ein Low und High Register. Beim High Register wird der Wert um 1 erhöht wenn im Low Register 1111 1111 steht. So kannst du dann auch mit 16-Bit Zahlen rechnen.

  5. #5
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    72
    Beiträge
    11.077
    Hallo!

    Zitat Zitat von Gremlin Beitrag anzeigen
    HI Leute hoff ihr könnt mir weiterhelfen, hab mich endlich an´s PIC programmieren rangewagt funktioniert auch super aber ich beiß mir hier die Zähne aus.
    Wenn du am Ende deiner Versuche noch eigene Zähne haben willst, würde ich dir zuerst als Lektüre empfehlen: https://www.roboternetz.de/wissen/in.../PIC_Assembler .
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    30.05.2011
    Beiträge
    26
    Hi Leute danke für die schnelle Hilfe funktioniert einwandfrei kann also meine Zähne behalten . Hab nur noch ne kleine Frage zwecks eines Quartzes wollte mir nen Uhrenquartz http://www.conrad.de/ce/de/product/1...archDetail=005 mit 32.768000 kHz bestellen. Welche Kondensatoren benötige ich da? Da steht was von Load Cap.: 12.5 pF heißt das das ich zwei Kondensatoren mit jeweils 12,5pF benötige?
    mfg Gremlin

  7. #7
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Das steht im Datenblatt des Quarzes oder des Controllers

  8. #8
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    72
    Beiträge
    11.077
    Hallo!

    Du kannst dir zwar die Quarze bestellen, aber ich habe es bisher nicht geschafft, so ein Quarz direkt am PIC zum laufen zu bringen und habe externen Oszillator mit CMOS Inverter (z.B. 4049) benutzt (siehe Code).
    Code:
      +-----------------------+
      |                  ___  |
      |   32768Hz  8p +-|___|-+        _   _
      |        _      |   2M  |      _| |_| |_
      | |\    | |  || | |\    | |\
      +-| >O-|| ||-||-+-| >O--+-| >O---------->
        |/    |_|  ||   |/      |/
    
    (created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)
    Geändert von PICture (26.09.2011 um 17:47 Uhr)
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    30.05.2011
    Beiträge
    26
    OK also wenn ich das richtig verstanden habe dann brauch ich die 12,5 pF Kondensatoren. Bei Conrad gibts aber nur 12pF Kontensatoren kann ich die auch nehmen oder bekomm ich dann eine andere Frequenz?
    mfg Gremlin

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    30.05.2011
    Beiträge
    26
    Hab im Controller Datenblatt mal nachgelesen und wieso steht da LP Mode: 32 kHz C1+C2 : 68 - 100 pF jetzt versteh ich nix mehr mfg Gremlin

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

12V Akku bauen