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

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 ]

We krijgen weeral veel respons van de TS ;-(

Die wil er een strikje om...