Salve a tutti gli utenti di questo NG.
Vengo subito al punto. Il mio obiettivo è quello di creare un piccolo dimmer luci con un PIC (16F84 o simile). Il mio problema è l'utilizzo del timer e degli interrupt.
Vi spiego quello che ho pensato:
CONTATORE (Timer0): deve cliclare all'infinito senza generare alcun interrupt dal valore 0 al valore 255. Con una frequenza tale da completare gli step da 0 a 255 in 100Hz ovvero una semionda. Credo che il valore in frequenza sia 25600Hz (Giusto?).
Il contatore deve essere comunque portato a 0 (resettato) ogni qualvolta ci sia un cambiamento di stato del pin RB0.
INTERRUPT (RB0): Ad ogni cambio di stato di questo piedino il Timer0 deve essere forzato a 0.
INTERRUPT (RB1): Quando questo piedino di input viene portato a 1, deve essere memorizzata in una variabile (nome: VSU) il valore dei piedini (dal bit più significativo a quello meno significativo): RB7-RB6-RB5-RB4-RA3-RA2-RA1-RA0 tutti piedini di input.
PROGRAMMA PRICIPALE: (RA2 = Uscita per pilotare una lampada, etc....) Deve semplicemente svolgere questo semplice algoritmo:
Inizio
VSU = 0
Ciclo: If VSU = 0 Then RA2 = 0 Else If VSU >= Timer0 Then RA2 = 1 Else RA2 = 0 Goto Ciclo;
Fine.
Ora la domanda e la richiesta:
- Per generare la frequenza di incremento come devo procedere? Riesco impostando il PIC? Che oscillatore devo usare? Da quanti MHz? E' preferibile usare un oscillatore esterno e collegarlo in RA4?
- Qualcuno mi sa scrivere un programma in PICBASIC o altro linguaggio che svolga il problema sopra esposto?
Vi ringrazio fin d'ora ed aspetto anche, magari, solo consigli utili al fine di risolvere questo "piccolo" problema, è tanto tempo che ci provo ma ancora non sono riuscito a risolverlo. Ringrazio fin d'ora chi potrà e vorrà aiutarmi.
Bye By Sy3kC
(Stefano)
Usare anche l'email se volete:
snipped-for-privacy@inwind.it
Togliere NOSPAM per rispondere.