Shary Inserito: 12 giugno 2006 Segnala Inserito: 12 giugno 2006 Di nuovi noi tre...La maturità è alle porte e ancora stiamo combattendo con questo plastico del treno. Sembra che pian pianino, siam riuscite ad occuparci della parte elettronica, si è presentato un problema però durante la programmazione del Pic 16f84a.Il programma è il seguente:;*******************IMPIANTO FERROVIARIO******************* PROCESSOR 16F84A INCLUDE "PIC16F84A.INC";************Input************* FR1 EQU 0 ;fotocellula 1 (RA0) FR2 EQU 1 ;fotocellula 2 (RA1) FR3 EQU 2 ;fotocellula 3 (RA2) FR4 EQU 3 ;fotocellula 4 (RA3);************Output*************** PL EQU 4 ;sbarre passaggio a livello SD EQU 5 ;scambio 1, dritto SI EQU 6 ;scambio 1, inclinato SEM EQU 7 ;semafori INIZIO: ORG 00H ;punto di inizio programma BSF STATUS, RP0 ;seleziona il banco 1 del FileRegister per accedere a TRISA e TRISB MOVLW 00001111B ;porta A: RA0-RA3 come INPUT MOVWF TRISA MOVLW 11100000B ;porta B: RB0-RB4 come OUTPUT MOVWF TRISB;**********Condizione iniziale passaggi a livello e scambi BCF STATUS, RP0 ;seleziona il banco 0 del FileRegister per accedere a PORTA e PORTB BSF PORTB, PL ;sbarre alzate (1 su RB0) BSF PORTB, SI ;scambio inclinato BCF PORTB, SEM ;semafori spenti;**********Attesa passaggio treno in FR2WaitFR2: BCF STATUS, RP0 BTFSS PORTA, FR2 ;fotocellulaFR2=1? GOTO WaitFR2 ;no fai polling su FR2 GOTO PLG ;si vai a PLGPLG: BCF STATUS, RP0 BCF PORTB, PL ;abbassa le sbarre BSF PORTB, SEM ;semafori accesi;**********Attesa passaggio treno in FR3WaitFR3: BCF STATUS, RP0 BTFSS PORTA, FR3 ;fotocellulaFR3=1? GOTO WaitFR3 ;no fai polling su FR3 GOTO PLS ;si vai a PLSPLS: BCF STATUS, RP0 BSF PORTB, PL ;alza le sbarre BCF PORTB, SEM ;semafori spenti;**********Attesa passaggio treno in FR1WaitFR1: BCF STATUS, RP0 BTFSS PORTA, FR1 ;fotocellulaFR1=1? GOTO WaitFR1 ;no fai polling su FR1 GOTO PLG1 ;si vai a PLG1PLG1: BCF STATUS, RP0 BCF PORTB, PL ;abbassa le sbarre BSF PORTB, SEM ;semafori accesi;**********Attesa passaggio treno in FR4WaitFR4: BCF STATUS, RP0 BTFSS PORTA, FR4 ;fotocellulaFR4=1? GOTO WaitFR4 ;no fai polling su FR4 GOTO PLS1 ;si vai a PLS1PLS1: BCF STATUS, RP0 BSF PORTB, PL ;alza le sbarre BCF PORTB, SEM ;semafori spenti BSF PORTB, SD ;scambio dritto END------------------------------------------------------------------------------Per programmare il pic, utilizziamo ic prog v-1.0.5.0Alla fine di ogni programmazione, ci mostra questo messaggio: "verifica fallita al address 0000h"Cosa possiamo fare? Da cosa dipende? (PS: abbiamo cambiato gia sia il PIC che il programmatore...può dipendere dalla configurazione di Ic Prog?)AIUTATECI VI PREGO!Grazie in anticipo...Sharon
Dario Valeri Inserita: 12 giugno 2006 Segnala Inserita: 12 giugno 2006 ciaoforse il micro non e' stato cancellato , prova a resettare la memoria.... ciaodario
Shary Inserita: 12 giugno 2006 Autore Segnala Inserita: 12 giugno 2006 Noi proviamo a cancellarlo, ma non si cancella...O meglio, dice "Chip Cancellato" ma quando andiamo a rileggere, non è vuoto!
Shary Inserita: 12 giugno 2006 Autore Segnala Inserita: 12 giugno 2006 A meno che non esista un qualcosa (che noi non sappiamo) per resettare la memoria...
Livio Orsini Inserita: 14 giugno 2006 Segnala Inserita: 14 giugno 2006 E' inutile che mandi post vuoti per sollecitare risposte, se non ci sono è perchè nessuno sa o vuole rispondere.Prova a cambiare micro. I micro con memoria flash hanno un ciclo finito di scritture-cancellazioni (il dato lo trovi nel data sheet del micro). Può essere che sia stato superato il numero di scritture o che un programmatore un po' brutale abbia alterato le caratteristiche della flash riducendone il ciclo di vita.
Dario Valeri Inserita: 14 giugno 2006 Segnala Inserita: 14 giugno 2006 ciaoil programmatore lo avete cambiato il micro lo avete cambiatonon rimangono che i settaggi....controlla anche il cavo di collegamentociaodario
Shary Inserita: 14 giugno 2006 Autore Segnala Inserita: 14 giugno 2006 Và...finalmente và! Sono i settaggi errati e la mancata patch di windows xp.ALTRO(e spero ultimo problema)...Necessitiamo di una ROUTINE di ritardo di 1 secondo.Attualmente abbiamo utilizzato queste (su consiglio di amici, ma non ne abbiamo capito il senso):INIZIO: ORG 00H ;punto di inizio programma ORG 04h decf CONT bcf INTCON,T0IF retfie.....................................................................DELAY: movlw .16 movwf CONTloopa: movf CONT,0 btfss STATUS,2 goto loopa return......................................................................Qualcuno puo fornirci i ritardi pari a 1 secondo e 2 secondi?Grazie! Scusate l'insistenza
Livio Orsini Inserita: 14 giugno 2006 Segnala Inserita: 14 giugno 2006 Prova a farli con l'interrupt di TMR0. Trovi anche un bell'esempio pronto sul sito di AreaSX dove scarichi "pic by examples" che, nonostante il titolo, è in italaino
Shary Inserita: 14 giugno 2006 Autore Segnala Inserita: 14 giugno 2006 La subrountine Delay dovrà utilizzare opportunamento il registro TMR0 per ottenere un ritardo pari ad un secondo. Vediamo come. Le prime istruzioni che vengono eseguite nella Delay sono: movlw 6movwf TMR0e movlw 125movwf CountLe prime due memorizzano in TMR0 il valore 6 in modo che il registro TMR0 raggiunga lo zero dopo 250 conteggi (256 - 6 = 250) ottenendo così una frequenza di passaggi per lo zero di TMR0 pari a: 31.250 / 250 = 125 HzLe istruzioni seguenti memorizzano in un registro a 8 bit (Count) il valore 125 in modo tale che, decrementando questo registro di uno per ogni passaggio per lo zero di TMR0, si ottenga una frequenza di passaggi per lo zero del registro Count pari a: 125/125 = 1HzLe istruzioni inserite nel loop DelayLoop si occupano quindi di controllare se TMR0 ha raggiunto lo zero, quindi di reinizializzarlo a 6 e decrementare il valore contenuto in Count. Quando Count raggiungerà anch'esso lo zero allora sarà trascorso un secondo e la subroutine potrà fare ritorno al programma chiamante. Indi è soltanto questa la stringa da utilizzare?movlw 6movwf TMR0movlw 125movwf CountNon necessita di etichette?
andreansr125 Inserita: 14 giugno 2006 Segnala Inserita: 14 giugno 2006 ciao, scusa se mi intrometto,ma anche voi alle prese con i pic e la maturità...??? non siete le sole però vedo che siete ad un livello già più avanzato del mio (io devo ancora programmarlo il pic), vi posso assillare per un 5 minutini su msn, se ce l'avete?? 'azzie!!!
Livio Orsini Inserita: 14 giugno 2006 Segnala Inserita: 14 giugno 2006 L'avete letto l'esempio di Tanzilli? Dovete solo copiare il codice perchè è prvisto proprio per F84.L'esposizione che avete scritto è corretta, ma non ho tempo di verificarvi la codifica.
Shary Inserita: 14 giugno 2006 Autore Segnala Inserita: 14 giugno 2006 Guardi...io non l'ho trovata l'esposizione di tanzilli. So soltanto che ci resta il programma ed abbiamo terminato un lavoro stremante (vi mandiamo una foto e scriveremo nella relazione finale della vostra gentile collaborazione )Attualmente, sembra mancarci SOLO questo ritardo di 1 secondo...ma non ne abbiamo davvero idea di come sia visivamente il programma. Può essere quello che abbiam scritto precedentemente?Se può aiutarci ancora, la ringraziamo in anticipo.andreansr125...come puoi notare, ci mancano alcuni accorgimenti finali. Appena terminato, prometto che io personalmente, cercherò di spiegarti come abbiamo lavorato.Attendo risposte
Livio Orsini Inserita: 14 giugno 2006 Segnala Inserita: 14 giugno 2006 (modificato) PIC by examplesQuesto è il link; ragazze 2 minuti con google Si scarica il file zippato da cui si estrae il pdfguardate il capitolo specifico per timer Modificato: 14 giugno 2006 da Livio Orsini
Simons Inserita: 14 giugno 2006 Segnala Inserita: 14 giugno 2006 salve a tutti... ho visto il prog, è tutto in ASM.. non potreste usare un compilatore tipo CCS (compilatore C)? con quello la routine di ritardo c'è nelle built-in functions.. scusate l'intromissione
Shary Inserita: 14 giugno 2006 Autore Segnala Inserita: 14 giugno 2006 Ora che abbiamo il programma, non si sa per quale misterioso motivo, torna a darci l'errore precedente..."errore all'indirizzo ooooh"Stiamo stremate...non è possibile, ci dice sempre male!
Simons Inserita: 14 giugno 2006 Segnala Inserita: 14 giugno 2006 secondo me è il programmatore... che settaggi usate su icprog?
Shary Inserita: 14 giugno 2006 Autore Segnala Inserita: 14 giugno 2006 Simons figurati...ma quale intromissione...qui dobbiamo riuscire a risolvere questi problemi...ogni aiuto è buono, nessuna intromissione, anzi...son bene accetti tutti i consigli e per questo ti ringraziamo...ma attualmente ci sono priorità maggiori...ovvero...NON SI RIPROGRAMMA
Shary Inserita: 14 giugno 2006 Autore Segnala Inserita: 14 giugno 2006 I settaggi sono quelli di base...sono poche le cose che cambiamo...ti prego se sai come fare AIUTACI!!!
Simons Inserita: 14 giugno 2006 Segnala Inserita: 14 giugno 2006 avete provato a prendere un altro pic? forse c'è la protezione sul codice.. allora in quel caso dovete prenderne un altro...comunque le impostazioni di icprog nella pagina hardware come sono?i fuses come sono messi? la porta com è quella giusta? l'IO delay a quanto è ? usate il JDM come programmatore?
Shary Inserita: 14 giugno 2006 Autore Segnala Inserita: 14 giugno 2006 Di pic ne abbiam provati TRE!!! Due ricomperati nuovi, uno ce lo ha dato il professore. Non sappiamo cosa sia la protezione sul codice...Le impostazioni nella pagina hardware sono le seguenti:Com 1 - I/O diretto (selezionato)...tutto il resto non spuntanto - I fuses durante la programmazione sono tutti NON spuntati (non usiamo ne WDT ne PWRT ne CP (cosi ci è stato detto...non sappiamo) - La porta disponibile mi dà soltanto la Com 1 (anche perchè dietro il mio pc, e anche a quello di claudia cè SOLO una possibilita di inserirlo) - I/O Delay è a 10 di Default - JDM è il singolo programmatore per PIC giusto? (abbiamo usato sia quello che l'altro con la pila da 9V con la possibilita di programmare anche EEPROM e EPROM se non erro).!
Simons Inserita: 14 giugno 2006 Segnala Inserita: 14 giugno 2006 ok anche io ho quel programmatore e di solito funziona.. prova a mettere l'IO delay a 4.. controllate che la batteria sia carica e che magari non si sia staccata qualche saldatura sul programmatore...sto facendo ipotesi :ph34r: non so di preciso come mai faccia a quel modo
Shary Inserita: 14 giugno 2006 Autore Segnala Inserita: 14 giugno 2006 Ne abbiam provati 3 di programmatori...tutti con saldature staccate?Niente neanche con I/O Delay a 4...Non ci abbandonare...AIUTACI...al costo di vederci e programmarlo!!!Puo essere la versione di Ic-Prog? (1.05D col drive per XP inserito) oppure può essere che essendo sbagliato qualcosa nel programma Ic-Prog si rifiuti di leggerlo? Possibile che qualcuno ce l'abbia con noi? (anche le mie sono ipotesi...non so piu che dire)
Simons Inserita: 14 giugno 2006 Segnala Inserita: 14 giugno 2006 uhm avete un altro programma che sia più corto come codice da provare? perchè per esempio per alcuni programmi che erano un po' "pesanti" ci voleva di più e alcune volte non funzionava il programmatore...fate un programmino cavolata e provate a programmare per ora non vi abbandono ma tra un po' mi sa che andrò a letto che ho da studiare per la maturità :ph34r:
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