Als newbie
Wie kan me helpen met schema en programma ( wil er best voor betalen )
2 duimwielschakelaars ( dus 0 t/m 99 ) inlezen op een pic.
De pic moet dan een pulstrein produceren.
getal 1 is 7 Hz
getal 2 is 14 Hz
getal 3 is 21 Hz
enz.
wie kan mij helpen
pros
Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
Zo moeilijk kan dat toch niet zijn? Plaats de 4 uitgangen van beide schakelaars parallel. De common's stuur je één voor één aan, waarbij je de BCD-code v/d uitgangen inleest. Daar maak je een 8-bits getal van door ("BCD-code tientallen" * 10) + "BCD-code eenheden" uit te rekenen.
Vervolgens maak je een tabel aan met 100 vertragingstijden voor de pulsen. Aan de hand v/d ingelezen waarde kies je uit de tabel de passende vertragingstijd, en klaar is kees.
waarom werken met een tabel ?
gebruik gewoon een vermenigvuldiger, bespaart tabel en dus geheugenruimte.
zet je BCD code om naar integer en vermenigvuldig met 7
en dan doe je gewoon t = 1/f
een voorbeeld:
de bcd staat op 3:
3 * 7 = 21
1 / 21 = 0,047619 (s)
0.047619 * 1000 * 1000 = 47619 µs
[Bericht gewijzigd door shortcircuit op ]
Wie kan me helpen met schema en programma
Waar ligt je probleem eigenlijk ?
Schema stelt niet veel voor;
je duimwielschakelaars op je ingangen met eventueel een pulldown weerstandje en een uitgang als pulser.
in picbasic kan je DELAYUS gebruiken voor de pulser.
in ons voorbeeld:
DELAYUS 47619
pseudocode zou kunnen zijn:
WHILE 1=1
LEES INTERRUPT DE INGANGEN BCD
CONVERT BCD->INTEGER
FREQUENCY = INTEGER * 7
T = 1/FREQUENCY
T = T * 1000
T = T * 1000
SET PORTA.0
DELAYUS T
RESET PORTA.0
WEND
de structuur van je progje hant af van hoe je het wilt hebben en hoe één en ander aan te passen moet zijn tijdens de puls.
[Bericht gewijzigd door shortcircuit op ]
