Sida 1 av 2

Binär klocka

Postat: 29 mars 2004, 16:44:05
av mrmike
Var inne på thinkgeek.com och blev sugen på en binär klocka så jag tyckte att det kunde passa bra med ett miniprojekt.
Det är i princip en PIC16F628 som håller koll på tiden och utan motstånd eller buffert blinkar lysdioderna 6st (5 för timmar) i taget. Den visar timmar, minuter och sekunder uppifrån och ner. Thinkgeeks visar tiden i BCD det gör inte min.
Ett litet irriterande blink uppkommer ibland så det ska väl fixas nån gång
Bild
Bild
Bild
Bild
Bild

Postat: 29 mars 2004, 17:12:41
av Perrx
Snyggt!
Jag håller oxå på med att bygga en binärklocka. Hur har du "gjort" en sekund? Antar att du inte använder TMR0... Kan man ställa in klockan?

Postat: 29 mars 2004, 17:28:22
av cyr
Nice, och kompakt!

Det ser ut som en klock-kristall (32767Hz) ? Så från den är det väl ganska lätt att få en fram 1Hz "tick" med t.ex. TMR0.

Postat: 29 mars 2004, 17:35:24
av mrmike
Jopp, jag använder en 32kHz-kristall och Timer0 med prescalern satt till 1:32.
När man trycker på knappen kommer man in i klockställarmod. (Bara "timmvisaren" lyser)
Då ställer man först timmarna genom att lagom snabbt trycka och släppa knappen.
Håller man knappen intryckt "ett tag" så slocknar "timmvisaren" och minutvisaren" tänds osv.

Postat: 29 mars 2004, 17:57:40
av Perrx
Måste man inte ha två kristaller? En på tex 4MHz som driver picen och en på 32kHz till TMR0?
Prescalern; betyder 1:32 att ett "tick" med timern "blir" 32tick eller är det att 32 tick blir 1 i timern? Kanske lite luddig fråga...

Postat: 29 mars 2004, 18:24:13
av mrmike
Du kan välja om du vill ha extern klocka till Timer0 eller om den ska drivas med kristallen som driver PIC:en.
1:32 betyder att efter 32 tick ökar TMR0 med 1.

Postat: 29 mars 2004, 18:45:44
av Perrx
Var ändrar man vad timern ska drivas av?

Postat: 29 mars 2004, 19:16:44
av EagleSpirit
coolt. Men för tusan. Du bor ju västerås. Visste inte att det fanns fler än *ken* i västerås som är proffshobbybyggare :P

Perrx: PIC kretsen drivs ju på 32khz. Den går relativt sakta men den funkar. Sedan ställer man in timern på intern och prescaler 1:32. Då räknar timern i 1khz. Sen vet jag inte hur du räknar ut det på ett bra sätt men det blir säkert relativt exakt. Jag ska försöka skapa en klocka på 4mhz, men den ska räkna dagar. Lite onödigt snabbt kanske

Postat: 29 mars 2004, 19:24:37
av mrmike
perxx: datenblatt :)
Fråga igen om du inte hittar det.

EagleSpirit: WeStaRoze RulEZ! :) *ken* är nog ganska mkt mer proffshobbybyggare än jag.
Det blir otroligt exakt: 32768 / 4 / 32 / 256 = 1

Postat: 29 mars 2004, 20:08:17
av EagleSpirit
just de, glömde att det krävs fyra klockpulser för en cykel, eller hur man nu säger.

du ska inte sätta in en alarmfunktion i den? Men det lär ju behvöas en knapp till

Postat: 29 mars 2004, 20:22:01
av mrmike
Jag funderade på det men det kändes lite överambitiöst då jag egentligen borde hålla på med emulatorn. Sen vet jag inte om jag skulle lita på den.
Jag har gjort ett mönster till ett armbandsur men det är ju inget man vågar ha på sig förutom om man är uteslutande bland fellow nerds så jag väntar nog ett tag med att etsa det :)

Postat: 29 mars 2004, 22:59:36
av Perrx
mrmike -> Är det i Option registret bit 5, Clock Source Select bit?

Postat: 29 mars 2004, 23:31:13
av mrmike
Svar ja. Genom att sätta den biten till en 1:a väljer du att klocka Timer0 eller prescalern varje instruktionscykel

Postat: 5 juni 2004, 09:34:20
av frax
Häpp, ännu en Västeråsare här!

mrmike, dela gärna med dig av källkoden.

/frax

Postat: 5 juni 2004, 11:49:27
av mrmike
Tjenna, tjenna!
Jo det skulle jag kunna göra...ska bara fixa en bugg först :)