MrCamarium Inserito: 12 settembre 2012 Segnala Share Inserito: 12 settembre 2012 Scaccia toi con PIC12F675 Compiler: HI-TECH C Compiler for PIC10/12/16 MCUs Version 9.83 #define _XTAL_FREQ 4000000 #include <pic.h> #include <delay.c> // configurazione __CONFIG (FOSC_INTOSCIO & WDTE_OFF & PWRTE_OFF & MCLRE_OFF & CP_OFF & CPD_OFF & BOREN_OFF & IESO_OFF & FCMEN_OFF); // Connessioni #define Led1 GP2 // GP2 -> SIN #define Led2 GP1 // GP1 -> LAT #define Led3 GP0 // GP0 -> CLK #define Led4 GP3 // GP0 -> CLK #define OUT GP4 // GP0 -> CLK // funzioni void main(void) { while(!HTS); // Stabilizza oscilatore interno CMCON=7; // Disabilita Comparatore. ADCON0 = 0; // Disabilita convertitore A/D TRISIO = 0b00000000; // Tutti i pin in out while(1) // eseguo un ciclo infinito { OUT=1; DelayMs(0,0625); // 16-27KHz OUT=0; }// Fine ciclo continuo } // Fine main volevo sapere come posso modificare il programma ottenendo dopo 100 cicli un aumento del valore di delay? Link al commento Condividi su altri siti More sharing options...
GiRock Inserita: 12 settembre 2012 Segnala Share Inserita: 12 settembre 2012 Ti ho già risposto di là... Link al commento Condividi su altri siti More sharing options...
GiRock Inserita: 12 settembre 2012 Segnala Share Inserita: 12 settembre 2012 void main(void) { unsigned char count = 0; unsigned short val = 32; while(!HTS); // Stabilizza oscilatore interno CMCON=7; // Disabilita Comparatore. ADCON0 = 0; // Disabilita convertitore A/D TRISIO = 0b00000000; // Tutti i pin in out while(1) // eseguo un ciclo infinito { while(count < 100) { OUT=1; DelayUs(val); // 16-27KHz OUT=0; DelayUs(val); count++; } count = 0; // da 16KHz arriva a 27KHz e poi torna a 16KHz val = (val - 1 >= 18) ? (val - 1) : 32; }// Fine ciclo continuo } // Fine main Link al commento Condividi su altri siti More sharing options...
Luigi Di Donato Inserita: 12 settembre 2012 Segnala Share Inserita: 12 settembre 2012 (modificato) Ho un filmato in esclusiva della cattura di un topo in casa mia, ho montato una telecamera con indirizzo I.P. e la cattura e' stata una vera impresa, sono piu' furbi di quello che pensavo, ma ho vinto io . Modificato: 12 settembre 2012 da Luigi Di Donato Link al commento Condividi su altri siti More sharing options...
GiRock Inserita: 13 settembre 2012 Segnala Share Inserita: 13 settembre 2012 E allora vai con il VIDEO!!! Link al commento Condividi su altri siti More sharing options...
Luigi Di Donato Inserita: 13 settembre 2012 Segnala Share Inserita: 13 settembre 2012 Lo devo ancora montare, appena riesco ( speriamo che Carletto non l'ha cancellato ) lo metto. Ma dimmi una cosa, gli ultrasuoni vanno bene per allontanare i topi? Frequenza ? Ho preso un dispositivo dai cinesi ma non so se funziona, sulla confezione c'e' scritto uscita 8 Watt frequenza 2O Khz 55 Khz, mo non so se i topi cinesi sono uguali a quelli del mio paese, non e' che cambiando nazione cambia la frequenza di ricezione dei topi?? Link al commento Condividi su altri siti More sharing options...
GiRock Inserita: 13 settembre 2012 Segnala Share Inserita: 13 settembre 2012 Ok per il video vedi tu, non so se poi sia anche un argomento tabù qui sul Forum, penso che scene cruente siano al bando, questo lo devi chiedere a chi sai già... Dubito che gli ultrasuoni possano dar fastidio a dei Topi con la T maiuscola, anche se dove abito io sono decenni che sono stati debellati delle Pantegane che facevano scappare anche i Gatti e aggredivano pure le persone, è stato necessarrio piazzare trappole velenosissime e qualche fucilata visto l'alto numero degli iscritti all'albo dell'epoca, ora sono rimasti in giro dei Campagnoli che vengono giù dai boschi e infestano le dispense mangiando tutto quello che trovano comprese le porte, ma direi che il fenomeno è sotto controllo, ormai si possono contare sulle punta delle dita gli avvistamenti... Ricordo che un conoscente Ingegnere avendo il terrore che ratti e talpe gli potessero rovinare il giardino o la villetta, aveva piazzato su tutto il perimetro questi apparecchi ad ultrasuoni, beh, che devo dirti, a parte un primo periodo dove sembrava funzionare, in seguito la trovata dava fastidio solo a me quando passavo di lì avendo un udito a dir poco sviluppato, era come se mi mettessero degli spilli dentro alle orecchie, mentre gli animaletti che si erano adattati non ne risentivano minimamente sguazzando indisturbati, la sua fortuna è stata che la vicina teneva 12 gatti ben pasciuti che cacciavano a turni, in compenso però si facevano le unghie sulle sue preziose piante, la talpa mi sa che era sorda perché ha continuato a scavare indisturbata per anni... Ad ogni modo ho risposto solo alla domanda per il codice, per il resto ci sarà gente più esperta della caccia al Topo ... Link al commento Condividi su altri siti More sharing options...
MrCamarium Inserita: 13 settembre 2012 Autore Segnala Share Inserita: 13 settembre 2012 grazie dell'aiuto proverò il codice. Link al commento Condividi su altri siti More sharing options...
GiRock Inserita: 13 settembre 2012 Segnala Share Inserita: 13 settembre 2012 (modificato) Leggermente ottimizzato: void main(void) { unsigned short count = 0; unsigned short val = 32; while(!HTS); // Stabilizza oscilatore interno CMCON=0x07; // Disabilita Comparatore. ADCON0 = 0x00; // Disabilita convertitore A/D TRISIO = 0b00000000; // Tutti i pin in out while(1) // eseguo un ciclo infinito { while(count < 200) { OUT^=1; DelayUs(val); // 16-27KHz count++; } count = 0; // da 16KHz arriva a 27KHz e poi torna a 16KHz val = (val - 1 >= 18) ? (val - 1) : 32; }// Fine ciclo continuo } // Fine main Attenzione!!! In HI-TECH C versione free, il file "delay.c" non è ottimizzato, la routine DelayUs accetta valori come unsigned char ovvero da 0 a 255, quindi se si vogliono ritardi maggiori bisogna concatenare manualmente più istruzioni, impensable invece utilizzare un float come parametro, purtroppo _delay(us) accetta solo costanti e nel tuo caso non va bene... Modificato: 13 settembre 2012 da GiRock Link al commento Condividi su altri siti More sharing options...
Luigi Di Donato Inserita: 14 settembre 2012 Segnala Share Inserita: 14 settembre 2012 Purtroppo il video e' stato cancellato da quel disgraziato di Carletto. comunque. Il video non conteneva immagini crude, a parte il finale che ve lo racconto io. Una volta catturato il topo ( su un cartone con relativa colla ) non sapevo cosa farne, allora sono sceso in strada e l'ho piazzato in mezzo alla carreggiata, tutte le auto che passavano a grande velocita' non lo prendevano perche' la posizione non era quella giusta. Sono ritornato in strada e l'ho spostato, e' passata un auto a fortissima velocita' e l'ha beccato in pieno, ho sentito un esplosione ed e' scomparso il topo con tutto il cartone. Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 14 settembre 2012 Segnala Share Inserita: 14 settembre 2012 Ma un bel gatto non ce l'hai? Così si divertiva un poco anche lui. Link al commento Condividi su altri siti More sharing options...
Luigi Di Donato Inserita: 14 settembre 2012 Segnala Share Inserita: 14 settembre 2012 C'e' un gatto della malora nella mia scala, , ha paura dei topi. Link al commento Condividi su altri siti More sharing options...
MrCamarium Inserita: 14 settembre 2012 Autore Segnala Share Inserita: 14 settembre 2012 proverç questo nuovo sorgente. Link al commento Condividi su altri siti More sharing options...
MrCamarium Inserita: 15 settembre 2012 Autore Segnala Share Inserita: 15 settembre 2012 nel pic che uso io questo comando non funziona: OUT^=1; devo usare il sistema proposti in precedenza: OUT=1; DelayUs(val); // 16-27KHz OUT=0; DelayUs(val); count++; Link al commento Condividi su altri siti More sharing options...
GiRock Inserita: 15 settembre 2012 Segnala Share Inserita: 15 settembre 2012 Che PIC e che versione del compilatore usi??? Io lo avevo compilato e non ho ricevuto errori, forse non dipende da quell'istruzione, ma da altro che è di contorno, ad ogni modo se funziona quella precedente va bene anche così... Link al commento Condividi su altri siti More sharing options...
GiRock Inserita: 16 settembre 2012 Segnala Share Inserita: 16 settembre 2012 Ecco all'incirca il suono generato da simulatore: SCACCIA TOPO ULTRASONICO Comunque MrCamarium, ho trovato la stessa domanda in molti Forum, quindi i casi sono due, o hai fretta o non ti fidi del prossimo, inoltre io ti conosco da molto tempo, come hai potutto constatare nessuno ha risposto decentemente al tuo quesito, per la storia del codice OUT^=1; in effetti viene compilato ma poi non funziona in simulazione, quello che non posso provare non avendolo a disposizione e se poi una volta programmato il PIC riconosce l'istruzione correttamente, quando uso MikroC non ho di questi problemi... Link al commento Condividi su altri siti More sharing options...
MrCamarium Inserita: 17 settembre 2012 Autore Segnala Share Inserita: 17 settembre 2012 diciamo che è fretta ma mi scuso, comunque quella istruzione è il PIC12F675 a non riconoscerlo. Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora