Sida 1 av 1
1Hz Med PIC 16F628 ?
Postat: 23 april 2005, 21:38:48
av Crille
Hur gör jag för att få en av portarna på min 16F628 att klocka i exakt 1Hz, ska nämligen ha det till en klocka.
Postat: 24 april 2005, 09:52:33
av Jine
Vad jag et du brukar man änvända nån speciel klockkristall som ligger på typ 32...khz
Men en hz = en svängning per sekund.. Så borde det inte gå att sätta den låg 500ms o hög 500ms? o sen får man kolla i databladet hur många mircosekunder man kan ta bort i fördröjningen
Postat: 24 april 2005, 12:10:18
av babbage
Man kan använda en klockkristall på 32768Hz. Om man delar den med 2^15 så får man 1Hz. Man kan även använda kristaller för andra frekvenser.
Om du vill använda pic:en till andra saker som att driva en display, alarm, något användarinterface för inställningar av tid mm och ändå ha en hög noggrannhet så kan det kanske vara en god idé att generera klockans tidsreferens utanför pic:en. Klocka pic:en med en hög frekvens (MHz) och kolla några hundra (exakt hur många är inte kritiskt) gånger per sekund på statusen på en inpinne.
Ex 32768/2^16 ger 0.5Hz. Läs av inpinnen och spara värdet (0 eller 1) i ett register. Om det inlästa värdet är samma som det gamla värdet i registret så gör man ingenting, om det däremot skiljer sig får man räkna upp sekundvärdet med 1.
Postat: 24 april 2005, 12:32:47
av Icecap
Man kan även, om man vill ha lite noggranhet, införskaffa en MAX32KHZ. Det är en 32768Hz oscillator som är temperaturkompenserat, man får då en noggranhet på ±2 min/år imon -40°C - +80°C, ±1 min/år vid rumstemperatur.
Ta signalen från MAX'en, kasta det in i en 4020 (eller är det 4040?) som nerdelning och *poooooffff*: 1 Hz!
Postat: 24 april 2005, 18:27:27
av Henry
4020 är en 14 stegs alltså bara 16384 ggr delning, en 4040 har bara 12. Men tex en 4045 däremot har 21 steg så en sådan räcker gott och väl.
Postat: 24 april 2005, 19:04:22
av grapetonix
babbage skrev: och kolla några hundra (exakt hur många är inte kritiskt) gånger per sekund på statusen på en inpinne.
Eller använd 16-bitars timern, många nya picar har ju den, avbrott sker vid rollover.
Postat: 24 april 2005, 20:07:26
av cyr
Om man inte vill ha en (extra) klockkristall så skulle jag föreslå 16bits timern ihop med CCP-modulen (man kan använda den som periodregister till 16bits timern med "special event trigger").
Med det kan man få ett timer-interrupt på exakt 100Hz (t.ex.), och därifrån lätt räkna fram 1Hz i mjukvara. Jag gjorde precis så till en klocka i en PIC18 på 40MHz, men F628 har det som behövs tror jag (och olika frekvens betyder bara lite olika värden i registren).
Postat: 26 april 2005, 15:47:04
av Crille
Humm, jag har en kristall på 32768Hz liggandes här också.
Men hade nån kunnat ge lite kod exempel hur jag ska göra i picbasic för detta ?