Tinus016
www.tinuselectronics.nl Because DIY Electronics Matters!!!!
Hoi mede forumers,
Ik moet voor iemand een soort schakelklok maken die elke dag op bepaalde programmeerbare tijden dingen inschakelt en weer uit schakelt. Ik dacht zelf aan een pic met een dcf77 ontvanger die dan een aantal relais aan stuurt.
Alleen zit ik met het volgende probleem het programma schrijven. PicBasic heb ik nou wel een beetje door. Dus graag zou ik het in deze programmeertaal schrijven. weet alleen niet hoe ik dit het best aan kan pakken. wie wil me een eindje op weg helpen??
Al vast bedankt voor jullie moeite.
pros
Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
Ik wil je gerust op weg helpen, als je bereid bent met een AVR aan de slag te gaan. 
Maar in alle ernst: op picbasic.ln staat toch een project met een DCF77-ontvanger. Kan je dat niet als basis nemen?
Tinus016
www.tinuselectronics.nl Because DIY Electronics Matters!!!!
Je bedoelt deze neem ik aan.(ja staat in een txt file hot linken naar een artikel op picbasic lukt niet.)
Dit is wel een heel gecompliceerd programma. Waar ik waarschijnlijk niet zo maar even een nieuw menu in kan zetten om de tijden te programmeren. of wel??
Hoewel het programma er heel indrukwekkend uitziet, is het redelijk eenvoudig (mede doordat meneer Kieftenbelt er veel commentaar bij heeft staan).
Bekijk het eens rustig (print het bijvoorbeeld uit), en kijk tot hoever je het begrijpt (de eerste hele pagina is SYMBOLS en DIM, dus dat scheelt vast). Kijk welke variabelen je nodig gaat hebben voor jouw programma (waarschijnlijk de tijd, misschien ook de datum), hoe die in het programma heten, en waar je je eigen stukje tussen zou kunnen voegen.
Als je dat doet moet er wel uit te komen zijn.
Hoi allemaal, je kan ook eens op schematheek kijken.
http://www.schematheek.net/index.php?p=forum/topic&t=78
Ik heb deze ook gemaakt.
Tinus016
www.tinuselectronics.nl Because DIY Electronics Matters!!!!
thanks!! ik ben het programma van frits (picbasic.nl) aan het door spitten. nou ik er mee bezig ben is het idd een vrij makkelijk te begrijpen. zal van avont kijken of ik al een nieuwe code heb.
Tinus016
www.tinuselectronics.nl Because DIY Electronics Matters!!!!
Zo, heb weer eens stukje code klaar voor het instellen van de tijden.
betwijfel enkel of dit wel zo handig is geschreven. iemand tips of op/aanmerkingen.
Deel van mijn code
; subroutines
Toetseninlezen:
CLEAR Bdtijd
WHILE Entertoets = 0
IF Omhoog = AAN AND Omlaag = UIT THEN
INC Bdtijd
IF Uurbit = TRUE THEN
IF Bdtijd = > 23 THEN
Bdtijd = 0
ELSEIF Bdtijd = 60 THEN
Bdtijd = 0
ENDIF
ENDIF
ENDIF
IF Omlaag = AAN AND Omhoog = UIT THEN
DEC Bdtijd
IF Bdtijd = 255 THEN
IF Uurbit = TRUE THEN
Bdtijd = 23
ELSE
Bdtijd = 59
ENDIF
ENDIF
IF Uurbit = TRUE THEN
PRINT AT 2,1, DEC Bdtijd " uur"
ELSE
PRINT AT 2,1, DEC Bdtijd " min"
WEND
RETURN
Tijdinstellen:
;12345678901234567890
PRINT AT 1,1, " Tijden instellen "
PRINT AT 3,1, " In tijd: 00:00"
PRINT AT 4,1, "Uit tijd: 00:00"
Uurbit = TRUE
GOSUB Toetseninlezen
Uurbit = FALSE
Uuraan = Bdtijd
PRINT AT 3,11, DEC Uuraan
GOSUB Toetseninlezen
Minaan = Bdtijd
PRINT AT 3,15 DEC Minaan
Uurbit = TRUE
GOSUB Toetseninlezen
Uurbit = FALSE
Uuruit = Bdtijd
PRINT AT 4,11, DEC Uuruit
GOSUB Toetseninlezen
Minuit = Bdtijd
PRINT AT 4, 15, DEC Minuit
;enze... voor de rest van de programmeerbaren tijden.
END
waarschijnlijk krijg ik nu wel op mijn donder van wegen dubbel post maar ik zie wel 
Edit: Klein stukje code vergeten.
Heb je al geprobeerd of het werkt? Het is heel lastig om te controleren, omdat ik niet weet wat wat voor moet stellen, maar het ziet er wel redelijk uit.
Ik vond
IF Bdtijd = > 23 THEN
Bdtijd = 0
ELSEIF Bdtijd = 60 THEN
Bdtijd = 0
dit er wel bijzonder uitzien. Als Bdtijd 60 is dan is hij sowieso ook groter dan 23. Ik denk dat je een EndIf verkeerd hebt staan.
Tinus016
www.tinuselectronics.nl Because DIY Electronics Matters!!!!
Nog niet getest.
En nu je het zegt... Zo dan maar??
IF Omhoog = AAN AND Omlaag = UIT THEN
INC Bdtijd
ELSEIF Uurbit = TRUE THEN
IF Bdtijd > 23 THEN
Bdtijd = 0
ENDIF
IF Bdtijd = 60 THEN
Bdtijd = 0
ENDIF
ENDIF
IF Omlaag = AAN AND Omhoog = UIT THEN
DEC Bdtijd
IF Bdtijd = 255 THEN
IF Uurbit = TRUE THEN
Bdtijd = 23
ELSE
Bdtijd = 59
ENDIF
ENDIF
ENDIF
...................
Edit:
Kleine verklaring, Nou kijkt hij er alleen naar als "Uurbit" waar is.
was in het oude prog hier boven ook zo, alleen niet op de goede manier.
[Bericht gewijzigd door Tinus016 op (13%)]
Ja, ik denk dat het wel klopt zo. De eenvoudigste manier om daar helemaal zeker van te zijn is uitproberen..