-         

Ergebnis 1 bis 6 von 6

Thema: Frequenz messen mit PIC

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    23.11.2004
    Beiträge
    17

    Frequenz messen mit PIC

    Anzeige

    Hallo User
    Ich möchte mit einem PIC 12F629 eine Frequenz messen und das Ergebnis ausgeben, z.B. Binärzahl.
    Die Frequenz wird im Bereich von 4 bis 6 MHz liegen.
    Mit den integrierten Timern sollte sich das doch machen lassen.

    Da ich wenig Erfahrung in der PIC programmierung habe würde ich mich über Tipps oder Beispielprogramme freuen.

    Gruss an alle User

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.12.2005
    Ort
    Euskirchen-Großbüllesheim
    Alter
    67
    Beiträge
    2.063
    Hallo TB1,
    ich würde die 4...6MHz mit einem TTL-Zähler / -Teiler um den Faktor 256...1024 runter teilen und dann auf den Timer-Eingang legen.
    Dann einen Interrupt erzeugen, der in festen Abständen den Zähler ausliest und löscht. Je nachdem, was Du für eine Int-Zeit wählst, hast Du schon eine brauchbare Binärzahl.
    Teiler und Meßzeit sind maßgeblich für die Genauigkeit und Auflösung.
    Wie ein 1ms-Int in Assembler programmiert wird findest Du z.B. unter http://www.domnick-elektronik.de/picasm.htm
    MfG Karl-Heinz
    HobbyElektronik hier klicken ....

  3. #3
    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 TB1!

    Ich würde Dir eine Application Note AN592 ("Frequency Counter Using PIC16c5X") vom Microchip in PDF Format empfehlen. Die Idee finde ich gut und ich habe sie selber mit Modifikationen angewendet. Es ist auch ein ASM Programm dabei, das man für sich entsprechend ändern kann.

    Ausserdem unter Projekte auf:

    www.sprut.de

    MfG

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    15.07.2004
    Alter
    32
    Beiträge
    807
    http://www.sprut.de/electronic/pic/p...quenz/freq.htm
    Vll hilft dir das weiter.

    ich kenn mich nicht so mit PICs aus, aber vll kannst du hier ja das prinzip übernehemen.

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    23.11.2004
    Beiträge
    17
    esten Dank erstmal für die Tips. Die AN von Microchip sieht vielversprechend aus, und auch aus dem Projekt von Sprut kann ich sicher ein paar anregungen ziehen.

  6. #6
    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 TB1!

    Vielleicht kannst Du meine Modifikation anwenden. Ich habe es bisher nur beim PIC18F252 ausprobiert, sollte aber bei den 12FXXX und 16FXXX auch gehen.

    Um den Prescaler auszulesen benutze ich zum "togglen" das Bit im Timer0 Configuration Register, das die Triggerungsflanke ändert:

    bsf T0CON,T0SE
    bcf T0CON,T0SE

    Während des "togglen´s" muss der TOCKI Pin in TRISA Register als Ausgang definiert werden.

    Somit habe ich den Pin, das für "togglen" benutzt war, für andere Zwecke frei.

    Der Register TMR0 wird in A1 und der Prescalerwert in A0 gespeichert.

    Inzwischen habe ich ein fertiges ASM Programm zum Messen der Frequenz in Wiki hochgeladen:

    http://www.roboternetz.de/wissen/ind...ler#Interrupts

    MfG
    Code:
    GetFreq	movf	TMR0,0
    		movwf	A1
    		movwf	FTmp
    		clrf	ATmp
    FToggle	incf	ATmp,1
    		bsf	_RP0
    		bsf	T0CON,T0SE
    		bcf	T0CON,T0SE
    		bcf	_RP0
    		movf	TMR0,0
    		subwf	FTmp,0
    		btfsc	_Z
    		goto	FToggle
    		comf	ATmp,1
    		incf	ATmp,0
    		movwf	A0
          return

Berechtigungen

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