dott.cicala Inserita: 7 ottobre 2011 Segnala Share Inserita: 7 ottobre 2011 (modificato) Qui dice che il program counter parte da 0The Reset VectorThere are two positions in the Program Memory that you need to know. The first one is the reset vector. The reset vector is the position where the program counter will go to after a reset (or a power on). This position is as expected at position 0x00, at the very beginning of the program memory.ho paura che devi rileggere di nuovo.... Modificato: 7 ottobre 2011 da dott.cicala Link al commento Condividi su altri siti More sharing options...
GiRock Inserita: 7 ottobre 2011 Segnala Share Inserita: 7 ottobre 2011 Allora ho simulato velocemente il tuo nuovo codice e siamo punto a capo, dato che non credi guarda tu stesso...Ho notato che hai tirato fuori certe istruzione dal bank1 e le hai messe correttamente in bank0, ma per il resto sei rimasto al punto di ieri, il buzzer pernacchia, la PORT_A deve essere settata con 11000 quindi 18H, la PORT_B non avendo pubblicato uno schema io non la uso quindi 00000000 o 00H...Lascia stare per ora le ORG che comunque cominciano con 00H (messe in ordine risparmi l'ORG 050H), io so che se non aggiustavo il prescaler il mio codice produceva suoni sgradevoli simili al tuo, non so come puoi affermare che funzioni, probabilmente è una semplice casualità dovuta ai continui overflow del timer...TRIS PORT_A e TRIS PORT_B sono istruzioni non consigliate, sono state rimpiazzate da: TRISA EQU H'0085' TRISB EQU H'0086' MOVLW 018H MOVWF TRISA & 07H MOVLW 00H MOVWF TRISB & 07H Stai solamente correndo troppo, alcune cose in assembler sono un tantino dure da assimilare, lo stesso programma in mikroC risulterebbe molto più semplice, inoltre contiene la routine suona (frequenza, durata) senza scrivere altro...P.S. Senza un simulatore non ne esci più in questi casi ... Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 7 ottobre 2011 Segnala Share Inserita: 7 ottobre 2011 Manuale Microchip (che credo sia l'unico documento incontenstabile)PICmicro™ Mid-Range MCU Family Reference ManualDS31003A-page 3-11Tabella Table 3-3: Initialization Condition for Special RegistersCondition Program CounterPower-on Reset 000hMCLR reset during normal operation 000hMCLR reset during SLEEP 000hWDT reset 000hWDT Wake-up PC + 1Brown-out Reset 000hInterrupt Wake-up from SLEEP PC + 1(1)Se escludiamo le condizioni di "risveglio" dove, giustamente il PC deve puntare all'istruzione successiva a quella a cui è andato in sleep, il PC parte sempre da zero!Se vai a vedere la tabella dell'organizzazione della memoria trovi che alla locazione 0 00h c'èscritto RESET VECTOR e la locazione 0004h è indicata come Peripheral Interrupt Vector. La loicazione 3ffh è l'ultima cella di memoria disponibile, quindi il tuo programma se funziona lo fa perchè somma due errori. Trova tutto a zero fino a 50h, quindi esegue come NOP, poi a 50h parte.I manuali non basta leggerli, vanno anche capiti! Link al commento Condividi su altri siti More sharing options...
Agamennone_Ares Inserita: 18 ottobre 2011 Autore Segnala Share Inserita: 18 ottobre 2011 Buonasera,ho seguito tutti i vs consigli e così ho riletto tutto. Non essendo però molto bravo con l'inglese, non è detto che abbia capito, mentre i manuali in italiano, quelli non lì ho capiti sicuramente....Sono riuscito a fare il generatore di nota con i 2 pulsanti in ASM e funziona veramente. Se vi interessa vi faccio vedere il sorgente: non ho usato il TMR0...Adesso sono alle prese con MikroC, apparentemente, avendo molte librerie belle e pronte, sembra più facile, ma in realtà non è così.Ho trovato vari manuali anche in italiano. Sono riuscito a realizzare quanto avevo fatto in ASM molto più semplicemente usando la funzione SOUND.Ho anche recuperato un simulatore (real pic simulator) ed è tutta un'altra vita.Ora sono qui per chiedervi gentilmente e pazientemente:1) Un consiglio per un simulatore gratuito.2) Qualche esempio semplice semplice.3) Mi sapete spiegare quanto segue:Sulla mia demoboard ho:2 pulsanti su ra3,ra4 attivi bassi1 buzzer piezo su ra0. 2 relè su ra1,ra2.8 led su portbSe uso Button(&PORTA, 3, 1, 0) non funziona, se invece uso Button(&PORTA, 3, 1, 1) funziona, però avendo ra3,ra4 sempre a 1 a riposo, mi funziona al contrario e cioè i relè sono sempre eccitati fino a che premo i pulsanti.Se invece non uso BUTTON e faccio così:if (PORTA.b3==0) PORTA.b1= 1; else PORTA.b1= 0;va tutto bene.Ho bisogno anche di capire la AND a bit. Perchè quanto sopra potrebbe esser fatto anche leggendo PORTA e mascherando ra0,ra1,ra2....Considerando che ra3,ra4 sono attivi bassi...o no?grazie1000 Link al commento Condividi su altri siti More sharing options...
GiRock Inserita: 18 ottobre 2011 Segnala Share Inserita: 18 ottobre 2011 (modificato) Questa volta ti attacchi al tram dopo la risposta che hai dato l'ultima volta, ormai i vari Forum pullulano di pivelli che si sentono onnipotenti solo perche programmano un PIC, studia, e vedrai che magari tra qualche anno capirai tutto...Il REAL PIC SIMULATOR tra un mese scade e non ci sono cr**k in giro...Simulatori validi gratuiti non esistono dato la complessità nel realizzarli...P.S. Io parlo per me naturalmente, gli altri sono sempre liberi di darti ancora retta... Modificato: 18 ottobre 2011 da GiRock Link al commento Condividi su altri siti More sharing options...
Agamennone_Ares Inserita: 18 ottobre 2011 Autore Segnala Share Inserita: 18 ottobre 2011 ok grazie Link al commento Condividi su altri siti More sharing options...
TeleMan Inserita: 18 ottobre 2011 Segnala Share Inserita: 18 ottobre 2011 Girok ( non male mi avete riportato indietro al mio vecchio Z80 ... quante discussione e incazzature).Comunque qualche anno fa, quando è nato il pic una rivista di Elettronica ha trattato il prodotto in modo abbastanza aprofondito .. quella può essere una partenza saggia.Questa volta un finale perfetto !!!P.S.i cr...k non si usano !!!! salvo se necessario 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