home | area personale         schemi | tutorial | robotica | pic micro | recensioni         forum | chat irc         faq | contatti         store | Ordina PCB
username
password
cerca

 
FORUM: Elettronica Generale
Qui si parla di tutto....dall'analogico al digitale, dal software all'hardware, dal semplice crepuscolare al computer.


Bloccare le telefonate indesiderate con MT88E39 e Atmega328
     
Autore Messaggio opzioni
DottPsy




una ogni 10 livelli una ogni 10 livelli


postato il:
19.05.2017, alle ore 12:11
Errata corrige
MT8870



La mente mente e noi aiutiamo a farla mentire.
picmicro675




una ogni 10 livelli


postato il:
19.05.2017, alle ore 17:23
Allora si passa ad emulare in toto la trasmissione in bit banging.
Per usare gli interrupt, vedi Atmel-42735A-ATmega328/P_Datasheet_Complete-06/2016
a pag. 82. Si potrà usare PCINT0, 1, 2 che dovrebbero sostituire i GPIO.RNG. GPIO.DCLK e GPIO:DR.
Qualcosa l' ho trovato qui
http://stackoverflow.com/questions/4137771/pin-change-interr…
Ma la questione rimane se l' interrupt viene rilevato su entrambi i fronti del livello logico. Ma credo che ci sia spiegato a pag. 87 .
StartTimer() può esser benissimo gestita con la libreria TimerOne. Che in genere fa il conteggio per mettere a dormire il sistema.
DottPsy




una ogni 10 livelli una ogni 10 livelli


postato il:
19.05.2017, alle ore 20:04
picmicro675:
Allora si passa ad emulare in toto la trasmissione in bit banging ...



Bene, ho letto i testi alle pagine da te indicate e il link, in effetti, avendo letto anche il datasheet del chip, il ring lo deve determinare Arduino e contestualmente risvegliare il chip per la decodifica. Il pin 9 del chip determina il clock di lettura mentre sul pin 10 c'è il treno di byte uno per volta. Quindi serve un solo interrupt che a ogni clock, legge.
Potrei convertire i byte in char in codifica ascii e sommare tutto in una stringa, sapendo le posizioni, posso estrarre data ora e numero.
Idea di massima, da testare.



La mente mente e noi aiutiamo a farla mentire.
picmicro675




una ogni 10 livelli


postato il:
19.05.2017, alle ore 21:05
Forse, non potrai fare uso della alimentazione della linea telefonica. Quindi si potrebbe anche soprassedere per i consumi. Visto che mi citi anche uno shield in ethernet.
Credo che se ti serve, potresti mettere a dormire il micro e quasi tutti gli interrupts sono in grado di sveglarlo.
Ho già citato il sito di gammon, che spiega bene come portare i consumi a livelli molto contenuti.
http://www.grix.it/viewer.php?page=12816 vedere nei commenti.
In caso verifica con i fogli dati quali sono le condizioni che risvegliano il micro.
picmicro675




una ogni 10 livelli


postato il:
23.05.2017, alle ore 15:26
Aggiungo altri links interessanti
https://www.gammon.com.au/forum/?id=11488
http://www.nongnu.org/avr-libc/user-manual/group__avr__inter…
Sono venuto a conoscenza perché vorrei implementare una routine che mi controlla 4 pulsanti, evitando polling esagerato.
Quindi per quello che sto cercando di estrapolare con IOC (Interrupt On Change) si deve impostare 6 o 7 registri, come specificano i fogli dati da pagina 82, poi si deve mascherare i bit non interessati con PCMSK(2~0) per i piedini interessati.
Solo che ho ancora da leggere bene come si dovrebbe dare i nomi correttamente per implementare la macro inclusa in avr/interrupt.
picmicro675




una ogni 10 livelli


postato il:
24.05.2017, alle ore 13:30
Aggiungo..... Ho trovato anche una buona libreria
https://github.com/GreyGnome/EnableInterrupt. Tra gli esempi si trova anche come rilevare il cambiamento di un ingresso.
segui questo thread con grixFC, per questa funzione devi aver installato il software grixFC

torna su
     

Come utente anonimo puoi leggere il contenuto di questo forum ma per aprire una discussione
o per partecipare ad una discussione esistente devi essere registrato ed accedere al sito




 

 
 
indietro | homepage | torna su copyright © 2004/2017 GRIX.IT - La community dell'elettronica Amatoriale