Is het mogelijk om een PIC (bijv: 16F628) een frequentie van max. 3MHz te laten delen door bijv 84 of 181 of 222?
Hoe pak je zoiets dan aan?
Pulsen laten tellen en dan na x aantal pulsen een uitgang hoog maken en weer resetten?
Of is er een slimmere manier om dit aan te pakken.....
Misschien heb je hier wat aan: http://www.qsl.net/dl4yhf/freq_counter/freq_counter.html . Jouw methode klinkt goed. Wat wil je ermee doen?
Frits Kieftenbelt
Ohm sweet Ohm | www.picbasic.nl
Zolang je deelfactor door 4 deelbaar is kun je je PIC met de ingangsfrequentie klokken en dan na x/4 instructies je pinnetje togglen, waarbij X je deeltal is (84 is deelbaar door 4, dus dat werkt)
181 kan niet, 222 kan wel.
Een andere mogelijkheid is de interne teller gebruiken die je met je 3 MHz signaal klokt. Interrupt genereren als er 84 telpulsen voorbijgekomen zijn, de interrupt toggelt een I/O pin. Nadeel: de deelfactor is wel exact 84, maar de timig van de uitgangspuls niet exact.
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Ik denk dat je 1 van de counters moet instellen op "externe clock". Vervolgens moet je de "compare" op de juiste waarde instellen (vaak deeltal -1) en als actie bij compare match: counter resetten en pin toggelen.
Of jou model microcontroller dat allemaal kan, weet ik niet. Ik geef je een redelijke kans als je de ATMEGA 168 probeert.
P.S. Als het echt nodig is, en kosten niet zo veel toe doen, en je bereid bent er wat moeite in te steken, kan je het ECHT perfect voor mekaar krijgen met een CPLD of FPGA....
[Bericht gewijzigd door rew op (21%)]
Op 11 augustus 2008 18:19:13 schreef rew:
P.S. Als het echt nodig is, en kosten niet zo veel toe doen, en je bereid bent er wat moeite in te steken, kan je het ECHT perfect voor mekaar krijgen met een CPLD of FPGA....
Dan nog liever een 4059 of aanverwante programmeerbare deler pakken, hoef je in een FPGA het wiel niet zelf uit te vinden.
Bedankt voor de reacties!
Ik zal nog even verder wat toelichten:
Het is eigenlijk de bedoeling dat de PIC een 40103 gaat vervangen, met deze chip kun je die delingen makkelijk voor elkaar krijgen.
Dit kan door diverse pinnen hoog en laag te maken met bijv dipswitches of weerstanden.
Ik wil dit eigenlijk met een encoder doen en eventueel de ingestelde waarde aflezen op een LCD oid.
Het lijkt me dan misschien dus beter om bijv de PIC de 40103 te laten bedienen en die verder het delen te laten doen.
Zou dat een logische optie kunnen zijn?
Is eigenlijk ook meer de oplossing die DC2PCC voorstelt.
Dan komt meteen trouwens een andere vraag de hoek om kijken:
De PIC zal dan een omzetting moeten doen van BCD naar 8 bits binair. Ik heb net gezocht in de Proton Basic manual en volgens mij is daar niet echt een directe instructie voor.
Zou een goede wijze dan bijvoorbeeld zijn om het deelgetal van bijv. 222, daar van af te trekken 128-64-16-8-4-2 totdat 0 over is of mischien werken met een deling
222/128 rest:94,
94/64 rest:30,
30/32 rest:30,
30/16 rest:14,
14/8 rest:6,
6/4 rest:2,
2/2 rest:0,
0/1 rest:0
Maakt dus: 1101 1110 Goed of te omslachtig?
@REW: CPLD en FPGA ben ik absoluut niet in thuis dus dit valt voorlopig nog af 
Met een (AVR) ATtiny2313 zou het in ieder geval gaan. Omdat je geen oneven getal kunt gebruiken (toggle on comp match deelt opzich door 2) kun je wel vertrekken van de dubbele frequentie wat weer op hetzelfde neerkomt. je deelt dan door 2,4,6, enz van de dubble startwaarde maar je stelt 1,2,3 enz in. De 8 bit compare/counter kun je instellen tussen 00 en 254. Eens je de deelwaarde ingeschreven hebt hoef je niet meer tussen te komen in software zolang je geen nieuwe deeltal wilt ingeven. Moet je precies vanaf 3Mhz vertrekken dan moet je een xtal van 6Mhz gebruiken. Ik heb de ATtiny2313 juist even ingeprogrammerd en dat werkt perfect ( draaide op 8Mhz en de hoogste outputwaarde was 4Mhz).
Ik hoop dat een PIC ook zo een Toggle on compare Match mode heeft.