hoi groep,

Ben hier bezig om in picbasic code te schrijven om m'n
DCF module uit te lezen. Alles werkt "redelijk" naar behoren, behalve bepaalde waardes worden nog niet correct weergegeven, ik vermoed dat dit iets met BCD of LSB te maken heeft.

Info voor DCF heb ik van http://www.giangrandi.ch/electronics/dcf77/signal.html

Nu staat er overal bij dat die bits LSB eerst zijn,
en dat die data in BCD formaat is.
Wat ik doe:
- ik dim een byte
- elke bit die binnenkomt voor die bepaalde byte,
plaats ik op volgorde van binnenkomen van rechts naar
links in de byte. (volgens mij is dit correct)

Het Jaartal, maandag, weekdag (zaterdag) blijkt te kloppen.
(dit kan natuurlijk ook toeval zijn)
uren, minuten & dag lopen serieus uit.
(zit hier om 19u met een notatie van 25 u)
Ik heb zo'n donkerbruin vermoeden dat die "BCD" er iets mee te maken heeft, maar wat doe ik met m'n bits dan als die binnenkomen om die "leesbaar" in die byte te krijgen ?

Alvast bedankt,
Kris

P.S. Mensen die nadien deze sourcecode willen, mogen
dit ook altijd laten weten, ik heb ze overvloedig
voorzien van commentaar, en zelfs een leek als ik,
verstaat z'n eigen code nog ;-)
(viel tot nu toe mee, uurtje programmeerwerk)

(zit hier om 19u met een notatie van 25 u)

Het lijkt erop dat je 19 u = 011001 (BCD) als binair geïnterpreteerd hebt. Simpele vergissing?
Of bedoel je dat je niet weet wat BCD code is?

[Bericht gewijzigd door oorpijn op ]

Op 14 augustus 2004 20:04:20 schreef oorpijn:
[...]
Het lijkt erop dat je 19 u = 011001 (BCD) als binair geïnterpreteerd hebt. Simpele vergissing?
Of bedoel je dat je niet weet wat BCD code is?

Heb het ondertussen opgelost, thanks voor het meedenken ;-)

de hele BCD stelt natuurlijk niet een getal voor,
ik moet de rechter 4 bits nemen, da's dan m'n eenheid,
de bits links van deze 4, vormen m'n tientallen ;-)

Allée, ik zit hier naar een DCF klok te kijken se, die de tijd op een LCD displaytje weergeeft. Niet slecht om nog maar een paar weekjes met electronica bezig te zijn.
Sourcecode is ook compleet zelf geschreven (op een paar uurtjes, testing & debugging inbegrepen), heb me alleen gebaseerd op het schema op voornoemde site ;-)

Op naar de volgende stap, een DS1820 temperatuursensor aansluiten se ...

Electronica is leuk ;-)
groeten,
Kris

Op 14 augustus 2004 19:42:34 schreef ActiveHouse:
Mensen die nadien deze sourcecode willen, mogen
dit ook altijd laten weten, ik heb ze overvloedig
voorzien van commentaar, en zelfs een leek als ik,
verstaat z'n eigen code nog ;-)
(viel tot nu toe mee, uurtje programmeerwerk)

Ik heb wel interesse in de broncode.
(Zie je e-mail)

Op 16 augustus 2004 21:55:34 schreef Frits Kieftenbelt:
[...]
Ik heb wel interesse in de broncode.
(Zie je e-mail)

Code zit ondertussen in je mailbox ;-)

succes,
Kris

moet zeggen, ik heb eigenlijk ook wel intresse in de sourcecode :D

Is voor mij als student ook nog best wel bijzonder leerrijk.

gebruikte je het schema van de bovenvermelde site ? (je sprak van een display , en op de site is het via een pc'tje :p)

grtzz..Bert

heb ook wel interesse maar dan geen waarvoor k t programma ook nodig heb gewoon de source in een word bestand ofzo

Op 19 augustus 2004 00:42:47 schreef theorieken:
heb ook wel interesse maar dan geen waarvoor k t programma ook nodig heb gewoon de source in een word bestand ofzo

Zit momenteel op m'n werk, maar ik zal vanavond (na 18u) de file uploaden naar m'n webserver en hier dan de link neerpoten ... Die BAS-file kan je gewoon in WORD ofzo openen, is een puur ASCII bestand eigenlijk.

Ik gebruik niet het schema van die site, ik gebruik een PIC-controller, zo'n DCF module van conrad, en verder een gewoon alphanumerisch LCD'tje van 16x2 chars.
Code is vrij gedocumentariëerd, al zeg ik het zelf ;-)
Elke "waarde" zoals uur, minuten, seconden, dag, weekdag, maand, jaar, zomer/wintertijd, antenne(master/backup) zitten elk mooi in een byte-variabele, dus hoef je die niet persé naar een LCD te sturen hé, ik heb ondertussen een variant gemaakt die over RS232 die data naar m'n server sturen, en heb dan serverside een klein proggietje geschreven om m'n server-klok elk uur juist te zetten ;-)

groeten,
Kris

Groeten,
Kris

ik zou graag zelf een klokje maken, met pic 16F84, dcf ontvanger, lcd display, en seriele interface.

Alleen weet ik het niet zo goed met dat programmeren (op school zien we assembler, maar kan je dat gebruiken voor alle families van microprocessoren eg pic, atmel, 8051,..)

Van de hardware heb ik "ongeveer" wel een id.

De windows sofware is helemaaaaaal niet aan mij besteed, aangezien ik geen ict maar enkel electronica volg.

Daarom, als je upload naar je webspace, zou je er dan eventueel schema's en alle software kunnen bijzetten (windows en pic)

mvg

Bert

Hier alvast de link naar de dcf-software in picbasic formaat.
http://users.pandora.be/wauters/electronica/dcfclock.bas

Even bijvertellen dat bovenaan netjes staat gedeclareerd welke pinnen van de PIC overeenstemmen met welke pinnen van de LCD, en ook op welke pin de DCF ontvanger is aangesloten.
Door gewoon deze declaraties wat aan te passen naar andere pinnen, kan je zelf zeer flexibel bepalen op welke pinnen een LCD moet zitten en een DCF-ontvanger. Voor de rest hoef je dus niks verder in de code aanpassen om dit werkende te krijgen. Door je declaratie naar een typenr PIC te zetten, en door het XTAL aan te passen in de declaraties, is deze code ook meteen bruikbaar voor andere pics op andere snelheden. (Ik gebruik geen pic-specifieke code)

Even nog een korte omschrijving van de werking:
- De hele DCF cyclus duurt 59 seconden, we hebben dus één seconde waar we niks op ontvangen, hierop wachten we dus in't begin van het programma, zodat we op de bit-trein kunnen springen.
- ééns we op die bit-trein zitten, is het gewoon een kwestie van de juiste bits bij mekaar in een byte te duwen, om zodoende variabelen te verkrijgen die netjes maand,datum,uur enz ... bevatten.
Je kan mooi netjes in de code volgen welke bits waarvoor bestemd zijn.
- een bit 0 krijg je binnen als een puls van 100mS, een bit 1 krijg je binnen als een puls van 200ms, de truuk is dus om te wachten op het begin van die puls, en dan na 150 ms eens te kijken of de poort nogsteeds hoog is, zoja, dan hebben we te maken met een 200 ms puls (die op dat ogenblik dus nog niet is afgelopen), zonee, dan hadden we een puls van 100 ms ...
- Aangezien de data in BCD formaat binnenkomt, kan je niet zomaar alle bits in één byte gooien, 4 bits bepalen het eerste cijfer van een variabel, en de overige bits bepalen het 2de cijfer van een variabel. Door deze bits dus in 2 verschillende variabelen op te slaan, en dan de hoogste byte te vermenigvuldigen met 10, en daar de laagste byte bij op te tellen, krijg je mooi een 2-cijferige voorstelling in één byte ...
- Data zoals welke antenne (A=master,B=backup) en Daylight Savings Time (W=winter,Z=zomer) worden meteen bij het binnenkomen op de LCD gezet, uren,minuten enz ... worden pas op het einde van een volledige cyclus, allemaal samen op de display gezet (als je dit doet tijdens het binnenkomen, zie je halverwege een minuut, die minuut verspringen, en een paar seconden later het uur, enz ... da's niet proper dus hé)
- Aangezien we elke seconde een bit binnen krijgen, kunnen we het wachten op deze bit gebruiken als telling van onze seconden ...

Op zich vind ik de code vrij gedocumentariëerd, en ook
vrij kort, door gebruik van veel algemene code.
(lol, de eerste listing die ik ooit zelf heb bekeken in JAL, was bijna 3x zo lang als mijn listing)
Aangezien we allemaal wel meer willen doen met onze PIC dan alleen DCF decodering, is het toch van belang dat dergelijke code zo compact mogelijk is hé.

Ik zal eens kijken of ik vanavond een schemaatje kan tekenen en dat ook uploaden. (ik heb zelfs geen schema gemaakt momenteel, was te simpel om aan te sluiten, lol)

En dan nog één opmerking: Ik hou nergens rekening met pariteitsbits, dus als je die schakeling te kort in de buurt van een storingsbron (PC ofzo) legt, kan het wel eens sprongen in de tijd (op de LCD) tot gevolg hebben, lol

Bij vragen, just ask ;-)

Groeten,
Kris

even gekeken naar je programma.

Het is bijzonder mooi opgebouwd met veel commentaar, waarvoor dank, want dit is zeer leerrijk voor mij als student en leek in microcontrollers nog :p.
programmeertaal doet me soms een beetje denken aan java zelfs.
maar euh, pariteitsbits ? lol ....

alvast bedankt voor het programma dus :d

Op 20 augustus 2004 12:55:48 schreef xbake:
even gekeken naar je programma.

Het is bijzonder mooi opgebouwd met veel commentaar, waarvoor dank, want dit is zeer leerrijk voor mij als student en leek in microcontrollers nog :p.
programmeertaal doet me soms een beetje denken aan java zelfs.
maar euh, pariteitsbits ? lol ....

alvast bedankt voor het programma dus :d

Bedankt voor de positieve feedback. Ik ben een complete newbie op electronica-gebied, en dit is het allereerste stukje code dat ik ooit in PicBasic heb geschreven. (lol, meteen in't begin de linking led en hello world toestanden overgeslagen)

Wat bedoel je met "maar euh, pariteitsbits ? lol ...." ?
Er zitten inderdaad wel pariteitsbits in op bepaalde plaatsen, maar buiten die gewoon "dummy" te lezen, doe ik er niks mee ;-)

groeten,
Kris

mja, kweet niet zo goed wat dat zijn en wat je er allemaal mee kan aanvangen :p

waarom gebruik je het display in '4 bit mode' ?
je gebruikt D4-D7, en D0-D3 gebruik je niet.
gebruik je R/W of RS (register select)

--> gewoon om te weten :)

ik zou het programma mss zelf proberen uitbreiden, om er een klein weerstation mee te maken, maar mss is dit nog iets te hoog gegrepen :p

[Bericht gewijzigd door xbake op ]

Op 20 augustus 2004 13:30:20 schreef xbake:
mja, kweet niet zo goed wat dat zijn en wat je er allemaal mee kan aanvangen :p

waarom gebruik je het display in '4 bit mode' ?
je gebruikt D4-D7, en D0-D3 gebruik je niet.
gebruik je R/W of RS (register select)

--> gewoon om te weten :)

ik zou het programma mss zelf proberen uitbreiden, om er een klein weerstation mee te maken, maar mss is dit nog iets te hoog gegrepen :p

pariteitsbits zijn eigenlijk controlebits, daarmee kan je in't oog houden dat de data die je ontvangen hebt, wel correct is. Daardoor kan je je software minder "storingsgevoelig" maken.

Ik gebruik de enable lijn en R/S van de LCD (zie definities in BAS-file)

Qua snelheid merk je niet of een alfanumeriek LCD in 4-bit of 8-bit mode werkt, allée, toch niet voor dergelijk soort applicatie. Door de LCD in 4-bit te gebruiken spaar je weer 4 pinnen uit op je PIC, die je voor iets anders kan gebruiken. in 4-bit is dat inderdaad D4-D7 ... Als je 8-bit zou willen, heb je ook D0-D3 nodig, maarja, dan ben je ook 4 extra pinnen kwijt op je PIC hé.

P.S. Zo'n weerstation is wel te doen, een paar DS1820 temperatuursensors (eentje aan de grond voor grondtemperatuur, eentje in open lucht voor gewone temperatuur, en eentje binnen) Verder nog een regensensor, een vochtigheidssensor, windmeter & windrichtingsmeter, eeh voila ;-)
Ach, had ik dat eerder geweten had ik me ook zelf een weerstation gemaakt, heb me er verdorie vorig jaar een WS-2300 van conrad gekocht.

Groeten & succes,
Kris

Ik heb wel interesse in de broncode.

Ik ben ook bezig met een temperatuurmeter voor in de auto en dan de binnen en buiten temperatuur

Groeten en alvast bedankt

(Oude topic, augustus 2004)

Klik voor meer info www.picbasic.nl/index_info_nl
Klik De werking van het DCF77 signaal
Met aldaar een link naar een DCF77 klok (met PIC Basic broncode)

mod-edit

[Bericht gewijzigd door KT88 op ]

mod-edit

[Bericht gewijzigd door KT88 op ]

Op 12 december 2005 17:43:40 schreef Tha lord of ElEcTrIcitY:
Gij zijt verdomme 36 jaar
36

Dat zijn wel meer mensen hier op dit forum;)

waarmee houdde gij u toch bezig!?

Elektronica:D

4600 posten, man man daar zou ik trots op zijn

Het gaat niet om het aantal posten, maar om het aantal nuttige:9

Op 12 december 2005 17:43:40 schreef Tha lord of ElEcTrIcitY:
Gij zijt verdomme 36 jaar
36

Ja ongeveer 33 meer dan jouw leeftijd kleuter

waarmee houdde gij u toch bezig!?
geen werk ofzo?

Werk en elektronica
Jaloers? Voor jou hebben ze zelfs op de sociale werkplaats geen ruimte zeker?

4600 posten, man man daar zou ik trots op zijn

Jij haalt de 100ste post niet. En hoeveel zullen er nuttig zijn? 0 denk ik!

En nee stupido voor deze toepassing zijn toch GEEN L293D's nodig.... (IQ kleiner dan -infinity ofzo)

Waarschijnlijk nog maagd ook. LOOOSER
Get a life jong!

Ging bij je ouders ook niet helemaal perfect zo te zien, wanneer mag je weer je isoleercel in?
http://plaatjes.metalruilen.nl/zwaai.gif

mod-edit

[Bericht gewijzigd door KT88 op ]

Op 12 december 2005 18:00:14 schreef Tha lord of ElEcTrIcitY:
[...]
Zelf verzonne? Of hulp van je moeder gekrege bij wie je nu al 36 jaar woont?

En jij dan? peuter die aan het experimenteren is met een keyboard?

shit man, kind, ik hou met niet meer bezig met u...
tss

Kan iemand die peuter/kleuter bannen 4 life?