giolecce Inserito: 2 marzo 2020 Segnala Share Inserito: 2 marzo 2020 (modificato) Buongiorno, ho un quesito da porvi, magari e una fesseria , ma non riesco proprio a venirne a capo. Ho scritto un programma che mi permetta di accendere per un secondo un led sulla porta RB3 del pic 16f84A quando sulla porta RA3 arrivano 5 volt. E accenderlo nuovamente per un secondo quando la tensione sulla porta RA3 torna a zero. Una volta compilato, sul simulatore funziona, ma caricato sul PIC funziona solo se la tensione sulla porta RA3 è a 5 volt, ma se ritorna a zero non ho l'effetto sperato, che invece ho se ritorna nuovamente a 5 volt. Riporto qui di seguito il programma il basic e il compilato in assembler. Aiutatemi a capire grazie. Dim i As Bit i = 0 TRISB = %00000000 PORTB = 0 inizio: If PORTA.3 = 1 And i = 0 Then PORTB.3 = 1 WaitMs 1000 PORTB.3 = 0 i = 1 Else If PORTA.3 = 0 And i = 1 Then PORTB.3 = 1 WaitMs 1000 PORTB.3 = 0 i = 0 Endif Endif Goto inizio End ; Compiled with: PIC Simulator IDE - Registered Copy v6.83 ; Microcontroller model: PIC16F84A ; Clock frequency: 8.0 MHz ; ; The address of 'i' (bit) (global) is 0x18,0 ; Begin R0L EQU 0xC R0H EQU 0xD R1L EQU 0xE R1H EQU 0xF R2L EQU 0x10 R2H EQU 0x11 R3L EQU 0x12 R3H EQU 0x13 R4L EQU 0x14 R4H EQU 0x15 R5L EQU 0x16 R5H EQU 0x17 ORG 0x0000 BCF PCLATH,3 BCF PCLATH,4 GOTO L0002 ORG 0x0004 RETFIE L0002: ; 1: Dim i As Bit BCF 0x18,0 ; 2: i = 0 BCF 0x18,0 ; 3: TRISB = %00000000 BSF STATUS,RP0 CLRF 0x06 ; 4: PORTB = 0 BCF STATUS,RP0 CLRF 0x06 ; 5: inizio: L0001: ; 6: ; 7: If PORTA.3 = 1 And i = 0 Then BTFSS 0x05,3 GOTO L0003 MOVLW 0x1F ANDWF STATUS,F BTFSC 0x18,0 GOTO L0003 ; 8: PORTB.3 = 1 BSF 0x06,3 ; 9: WaitMs 1000 MOVLW 0xE8 MOVWF R0L MOVLW 0x03 MOVWF R0H CALL W001 ; 10: PORTB.3 = 0 BCF 0x06,3 ; 11: i = 1 BSF 0x18,0 ; 12: Else GOTO L0004 L0003: MOVLW 0x1F ANDWF STATUS,F ; 13: If PORTA.3 = 0 And i = 1 Then BTFSC 0x05,3 GOTO L0005 MOVLW 0x1F ANDWF STATUS,F BTFSS 0x18,0 GOTO L0005 ; 14: PORTB.3 = 1 BSF 0x06,3 ; 15: WaitMs 1000 MOVLW 0xE8 MOVWF R0L MOVLW 0x03 MOVWF R0H CALL W001 ; 16: PORTB.3 = 0 BCF 0x06,3 ; 17: i = 0 BCF 0x18,0 ; 18: Endif L0005: MOVLW 0x1F ANDWF STATUS,F ; 19: Endif L0004: MOVLW 0x1F ANDWF STATUS,F ; 20: Goto inizio GOTO L0001 ; 21: ; 22: End L0006: GOTO L0006 ; 23: ; 24: ; 25: ; End of program L0007: GOTO L0007 ; Waitms Routine W001: MOVF R0L,F BTFSC STATUS,Z GOTO W002 CALL W003 DECF R0L,F NOP NOP NOP NOP NOP GOTO W001 W002: MOVF R0H,F BTFSC STATUS,Z RETURN CALL W003 DECF R0H,F DECF R0L,F GOTO W001 W003: MOVLW 0x0C MOVWF R2H W004: DECFSZ R2H,F GOTO W004 NOP NOP MOVLW 0x26 MOVWF R1L W005: DECFSZ R1L,F GOTO W006 CALL W007 CALL W007 NOP NOP RETURN W006: CALL W007 GOTO W005 W007: MOVLW 0x0D MOVWF R2L W008: DECFSZ R2L,F GOTO W008 NOP RETURN ; End of listing END Modificato: 2 marzo 2020 da giolecce Link al commento Condividi su altri siti More sharing options...
del_user_97632 Inserita: 2 marzo 2020 Segnala Share Inserita: 2 marzo 2020 (modificato) Cosi a vederlo il programma non pare sbagliato da non funzionare. Magari all'inizio setta anche TRISA, tutto come input, per sicurezza, qualcosa tipo, TRISA = 0xff; Poi, visto che sul simulatore funzona, sei sicuro che RA3 scende e resta proprio a 0V ? Misura sul pin del micro nel caso Modificato: 2 marzo 2020 da _angelo_ Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 2 marzo 2020 Segnala Share Inserita: 2 marzo 2020 Oltre a 43 minuti fa, _angelo_ ha scritto: TRISA = 0xff; metti anche un resistore (4k7 o simile, non è critico) tra RA3 e zero, così sei sicuro che la porta è a zero o a +5. pensavo che il 16f84 non venisse più usato,era vecchio gia alla fine del secolo scorso. Link al commento Condividi su altri siti More sharing options...
giolecce Inserita: 2 marzo 2020 Autore Segnala Share Inserita: 2 marzo 2020 Scusate, in effetti dovrei metterci una resistenza sul piedino RA3, ma il discorso è che ponendo a livello alto la porta RA3 il led si accende e la variabili di controllo i viene settata a 1. quando porto RA3 a zero la variabile di controllo ritorna sullo zero e questo si evince dal fatto che riportando il livello alto sulla porta RA3 il led si riaccende. Link al commento Condividi su altri siti More sharing options...
del_user_97632 Inserita: 2 marzo 2020 Segnala Share Inserita: 2 marzo 2020 (modificato) mmm pero con quegli else qualcosa non torna. Usa sempre i tag codice e tabula bene se no non si capisce. Prova per favore questa lieve variante che controlla sempre entrambe le condizioni della porta: Dim i As Bit i = 0 TRISB = %00000000 TRISA = %11111111 PORTB = 0 inizio: If PORTA.3 = 1 Then If i = 0 Then PORTB.3 = 1 WaitMs 1000 PORTB.3 = 0 i = 1 Endif Endif If PORTA.3 = 0 Then If i = 1 Then PORTB.3 = 1 WaitMs 1000 PORTB.3 = 0 i = 0 Endif Endif Goto inizio End Modificato: 2 marzo 2020 da _angelo_ Link al commento Condividi su altri siti More sharing options...
max.bocca Inserita: 2 marzo 2020 Segnala Share Inserita: 2 marzo 2020 La versione sopra citata mi piace di più. Verifica bene il livello in ingresso. Se guardi il data sheet per ogni porta. Ci indicati i valori per sicuramente 0 e 1, poi ci sono porte b che puoi attivare la resistenza di pull up, quelle un uscita versione open collettor drain e trigger Link al commento Condividi su altri siti More sharing options...
del_user_97632 Inserita: 2 marzo 2020 Segnala Share Inserita: 2 marzo 2020 (modificato) a naso lui ha fatto un "nested" if dentro a un altro if che funziona solo in una certa combinazione/tempistica di attivita' in RA3 . Io penso (e spero) che il mio esempio sopra funzioni. Modificato: 2 marzo 2020 da _angelo_ Link al commento Condividi su altri siti More sharing options...
giolecce Inserita: 3 marzo 2020 Autore Segnala Share Inserita: 3 marzo 2020 Geazie per le risposte, ho inserito la resistenza da 4,7 K e ho usato il programma suggerito da angelo, ma il comportamento del mio Pic è rimasto identico. Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 3 marzo 2020 Segnala Share Inserita: 3 marzo 2020 14 ore fa, giolecce ha scritto: ma il discorso è che ponendo a livello alto la porta RA3 il led si accende e la variabili di controllo i viene settata a 1. quando porto RA3 a zero la variabile di controllo ritorna sullo zero e questo si evince dal fatto che riportando il livello alto sulla porta RA3 il led si riaccende. No. L'uscita va a zero perchè la porti a zero dopo 1". Il problema è che non viene riconosciuta l'andata a zero dell'ingresso, viene riconosciuto solo l'andata ad uno dell'ingresso. Il test sullo zero di ingresso deve essere fatto in modo che riconosca che in precedenza l'ingresso fosse ad uno. Il test andrebbe fatto non direttamente sull'ingresso, ma sull'ingresso e sulle memorie dello stato precedente. ora non ho tempo, ma se non risolvi prima vedo, forse nel pomeriggio, di scriverti una traccia. Link al commento Condividi su altri siti More sharing options...
del_user_97632 Inserita: 3 marzo 2020 Segnala Share Inserita: 3 marzo 2020 (modificato) 4 ore fa, giolecce ha scritto: Geazie per le risposte, ho inserito la resistenza da 4,7 K e ho usato il programma suggerito da angelo, ma il comportamento del mio Pic è rimasto identico. Io direi di fare un piccolo loop che rilveva solo RA3 da 1 -> 0. Dunque, manualmente, ma mai con corto secco, ma tramite una resistenza magari di 100Ohm, porta RA3 da 5V a 0 (connetti la resistenza da RA3 prima a 5V e poi a massa). Magari posta uno schemino elettrico di quello che stai facendo, che forse il problema e' banalmente hw. Modificato: 3 marzo 2020 da _angelo_ Link al commento Condividi su altri siti More sharing options...
giolecce Inserita: 3 marzo 2020 Autore Segnala Share Inserita: 3 marzo 2020 6 ore fa, Livio Orsini ha scritto: No. L'uscita va a zero perchè la porti a zero dopo 1". Il problema è che non viene riconosciuta l'andata a zero dell'ingresso, viene riconosciuto solo l'andata ad uno dell'ingresso. Il test sullo zero di ingresso deve essere fatto in modo che riconosca che in precedenza l'ingresso fosse ad uno. Il test andrebbe fatto non direttamente sull'ingresso, ma sull'ingresso e sulle memorie dello stato precedente. ora non ho tempo, ma se non risolvi prima vedo, forse nel pomeriggio, di scriverti una traccia. Si l'uscita la porto a zero dopo un secondo, ora supponendo di eliminare il blocco del secondo IF (quella che controlla se l'ingresso è a zero) in teoria pur portando a zero l'ingresso e poi riportarlo a 1il led non si dovrebbe accendere questo perchè la condizione sul primo IF non è più soddisfatta in quanto i=1. Devo controllare questo comportamento perchè se risultasse vero allora significa che nella seconda IF il ciclo entra e a questo punto non capisco perchè non accende il led. Link al commento Condividi su altri siti More sharing options...
giolecce Inserita: 3 marzo 2020 Autore Segnala Share Inserita: 3 marzo 2020 3 ore fa, _angelo_ ha scritto: Io direi di fare un piccolo loop che rilveva solo RA3 da 1 -> 0. Dunque, manualmente, ma mai con corto secco, ma tramite una resistenza magari di 100Ohm, porta RA3 da 5V a 0 (connetti la resistenza da RA3 prima a 5V e poi a massa). Magari posta uno schemino elettrico di quello che stai facendo, che forse il problema e' banalmente hw. la resistenza che uso e di 4k7 così come consigliato da Livio, farò la prova che dici tu e vi farò sapere. Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 3 marzo 2020 Segnala Share Inserita: 3 marzo 2020 (modificato) 5 ore fa, _angelo_ ha scritto: ma tramite una resistenza magari di 100Ohm Se non ci sono problemi di immunità ai disturbi è inutile usare resistori di così basso valore. Comunque si può fare il corto franco tra ingresso e zero volt senza alcun problema per la porta se è configurata da ingresso. Basta osservare come è fatta fisicamente. Il resistore da qualche kilo serve per dare un minimo di ancoraggio a zero quando si lascia l'ingresso libero. In questo caso non è questione di Hw ma di Sw. Come ho scritto prima il test non va fatto sul livello, ma andrebbe fatto sul fronte. Visto che si usa un ritardo bloccante per tenere acceso il LED si semplifica un po' il test. Setto un flag quando l'ingresso va "1"; a LED spento verifico se l'ingresso è a "0" e se la memoria di "1" è alta. Se le 2 condizioni sono vere, abbasso il flag di "1", alzo il flag di "0" commando l'accensione del LED. Ripeto un test simile per la condizione di ingresso "1". Modificato: 3 marzo 2020 da Livio Orsini Link al commento Condividi su altri siti More sharing options...
del_user_97632 Inserita: 3 marzo 2020 Segnala Share Inserita: 3 marzo 2020 (modificato) 1 ora fa, Livio Orsini ha scritto: Se non ci sono problemi di immunità ai disturbi è inutile usare resistori di così basso valore. Comunque si può fare il corto franco tra ingresso e zero volt senza alcun problema per la porta se è configurata da ingresso. Non per piantar grane eh , ma mio consiglio spassionato, per quel che vale, e' che e' buona prassi operare sempre con resistori, e corti secchi specie a Vcc sul pin del micro non farli mai. A chi e' all'inizio il consiglio lo do sempre. Se la porta e' ben configurata non succede nulla, ma se si fa un corto secco sulla linea "output con output" e l'alimentatore e' in grado di darti correnti elevate, puoi fare danni (gia successo) e la resistenza puo salvare al porta. E' solo una prassi. Si, fare il test su fronte 1->0 o 0->1 ovviamente. L'ingresso RA3 e' TTL, il valore LOW viene rilevato passando da un valore piu alto di 0.8 a piu bassi di 0,8V circa. Livello alto quando si va da < 2.4V a > 2.4V. Io resto convinto che il problema e' hardware, cioe che giolecce, da livello alto, non scende sotto agli 0.8V. anche perche' ha gia provato 2 programmi, e il primo gia funzionava sul simulatore. Modificato: 3 marzo 2020 da _angelo_ Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 3 marzo 2020 Segnala Share Inserita: 3 marzo 2020 21 minuti fa, _angelo_ ha scritto: E' solo una prassi. Certo è una prassi; un po' come mettere calzoni di una taglia in meno, cinta e bretelle per assicurarsi di non sbracare Comunque che tu tenga la porta a potenziale 0 con un corto franco, con un resistore da 4k7 o 100 ohm il risultato, per il micro, è identico, ovvero valore logico "0" 25 minuti fa, _angelo_ ha scritto: da livello alto, non scende sotto agli 0.8V. Con 0.8V deve darti sicuramente livello basso. Non ho sottomano il data sheet di questo PIC, quindi cito a memoria, ma con alimentazione di 5V la sicurezza di alto è >= 3V e livello basso <=2V. Chiaramente più il segnale si avvicina ai limiti di alimentazione, più migliora l'immunità ai disturbi. 28 minuti fa, _angelo_ ha scritto: e il primo gia funzionava sul simulatore. Tra simulare e fare .... c'è di mezzo il mare. Il simulatore lavora su condizioni teoriche e nion sempre le condizioni pratiche sono ideali. Ad esempio non ci sono spikes e rimbalzi. Poi bisogna vedere come è stato fatto il simulatore. Potrò anche sbagliarmi, perchè devo basarmi solo sul racconto, ma vista la semplicità del circuito ed iol micro stracollaudato di problemi Hw non cedo possano essercene poi molti. Link al commento Condividi su altri siti More sharing options...
del_user_97632 Inserita: 3 marzo 2020 Segnala Share Inserita: 3 marzo 2020 (modificato) 1 ora fa, Livio Orsini ha scritto: Certo è una prassi; un po' come mettere calzoni di una taglia in meno, cinta e bretelle per assicurarsi di non sbracare Io ho bruciato un paio di chip, anni fa, era un codec, bastato toccare con una sonda oscilloscopio 5V e un pin vicino del chip. Poi grazie al fatto che ho una certa esperienza ho sostituito il QFP su scheda cliente, lavoro certosino e perfetto, e non se n'e' accorto nessuno. Dipende da quanti A puo dare l'alimentazione a monte, dalla corrente di "sink" supportata dal chip da quella volta io uso una resistenza per operazioni di prova sui pin, e non sono l'unico. 1000 100 10 insomma, il valore si sceglie a sconda del caso. 1 ora fa, Livio Orsini ha scritto: Non ho sottomano il data sheet di questo PIC, quindi cito a memoria, ma con alimentazione di 5V la sicurezza di alto è >= 3V e livello basso <=2V. MI pare che i valori che citi sono quelli standard CMOS, datasheet dice che RA3 in input non e' CMOS ma TTL e i valori ndicati sopra sono letti dal datasheet, lui dovrebbe scendere sotto 0.8., Mah, non abbiamo dati certi, per ora solo "teoremi" da confermare. Vediamo se giolecce si fa vivo. Unia cosa certa e' che se non la pianto di giocare e entro domani non concludo qualcosa di buono, con la crisi in arrivo, saro tra i primi a volare a casa. Modificato: 3 marzo 2020 da _angelo_ Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 3 marzo 2020 Segnala Share Inserita: 3 marzo 2020 Scusa ma in oltre 40 anni di lavoro con i micro non mi è mai capitato di sfondare una porta di ingresso per una chiusura a zero. Forse sarò stato molto fortunato. Non ho il data street sottomano, però il riferimento a tal riguardo riguarda la capacità di carico Alcune porte hanno capacità di carico come, altre ttl. Ho verificato spesso, per altri motivi più legati all'immunità, e i livelli son quelli che ho elencato prima Link al commento Condividi su altri siti More sharing options...
del_user_97632 Inserita: 3 marzo 2020 Segnala Share Inserita: 3 marzo 2020 (modificato) 30 minuti fa, Livio Orsini ha scritto: Scusa ma in oltre 40 anni di lavoro con i micro non mi è mai capitato di sfondare una porta di ingresso per una chiusura a zero. Forse sarò stato molto fortunato. Sei stato bravo ed hai dimensionato bene le alimentazioni. Io in 35 tra lavoro e hobby di sicuro ho in attivo un codec (incandescente) e mi pare un AVR anni fa, in quel caso probabilmente sarebbe bastato usare un 78L05 e non un 7805CV che avevo usato perche non avevo altro. Io non ho grandi lauree ma 5V dall'alimentazione contro un output a 0 e' un corto secco sulla porta. Per altro tu sai che di corti a massa per errore io sono un campione indiscusso. Modificato: 3 marzo 2020 da _angelo_ Link al commento Condividi su altri siti More sharing options...
giolecce Inserita: 4 marzo 2020 Autore Segnala Share Inserita: 4 marzo 2020 dal punto di vista HW è tutto ok, ho anche resistenza di pull-down da 4.7 k sull'ingresso RA3. Ho fatto un ulteriore prova dal listato ho eliminato il secondo IF quindi il listato diventa questo: Dim i As Bit i = 0 TRISB = %00000000 TRISA = %11111111 PORTB = 0 inizio: If PORTA.3 = 1 Then If i = 0 Then PORTB.3 = 1 WaitMs 1000 PORTB.3 = 0 i = 1 Endif Endif Goto inizio End Risultato e che portando a 1 il livello della porta RA3 il led si accende per 1 secondo poi si spegne tutto ok. Ora se riporto il l'ingresso da 1 a zero e poi nuovamente a 1 il led si riaccende, ma così non dovrerbbe essere perchè la condizione i=0 non dovrebbe essere verificata. poi Livio scusami ma non ho capito cosa intendi ..... 7 ore fa, Livio Orsini ha scritto: Setto un flag quando l'ingresso va "1"; a LED spento verifico se l'ingresso è a "0" e se la memoria di "1" è alta. Se le 2 condizioni sono vere, abbasso il flag di "1", alzo il flag di "0" commando l'accensione del LED. Ripeto un test simile per la condizione di ingresso "1". Link al commento Condividi su altri siti More sharing options...
del_user_97632 Inserita: 4 marzo 2020 Segnala Share Inserita: 4 marzo 2020 (modificato) Tu dici che "i" torna a 0. C'e' un solo modo per cui questo possa avvenire. Che il micro si resetta . Forse perche' non pulisci il "watchdog" nel loop Wait1000, ma non credo, perche' dici che il led sta acceso un secondo, oppure si resetta per qualche altro motivo, Prova ad aggiunfgere al tuo programma: DEVICE 16F84A DIM i as BYTE (invece di DIM i as Bit) CONFIG WDT_OFF, qui forse devi specificare altre opzioni MCLR se e' libero portalo a VCC (con una resistenza, metti 1K o 4K7). Modificato: 4 marzo 2020 da _angelo_ Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 4 marzo 2020 Segnala Share Inserita: 4 marzo 2020 Per prima cosa sono andato a rileggermi il datasheet del 16F84A e ha raghone _angelo_ il livello di "0" deve essere <= 0.8v (0.9V per ingressi con schmittrigger). 6 ore fa, _angelo_ ha scritto: MCLR se e' libero portalo a VCC Mettiun condensatore da 0.1µF verso zero ed una 4k7 verso il +5V, così sei sicuro del reset all'accensione. Togli WDT, che è l'ultima cosa da settare, solo quando sei sicuro che tutto gira. Misura lòa tensione che hai fisicamente sulla porta quando lametti a zero. Il resistore di pull-dawn serve solo quando l'ingresso è libero e flottante, ma per avere la certezza dello zero o c'è una porta che chiude a zero e c'è un contatto meccanico che fa la stessa cosa. Link al commento Condividi su altri siti More sharing options...
giolecce Inserita: 5 marzo 2020 Autore Segnala Share Inserita: 5 marzo 2020 Il 4/3/2020 alle 00:38 , _angelo_ ha scritto: Tu dici che "i" torna a 0. C'e' un solo modo per cui questo possa avvenire. Che il micro si resetta . Forse perche' non pulisci il "watchdog" nel loop Wait1000, ma non credo, perche' dici che il led sta acceso un secondo, oppure si resetta per qualche altro motivo, Prova ad aggiunfgere al tuo programma: DEVICE 16F84A DIM i as BYTE (invece di DIM i as Bit) CONFIG WDT_OFF, qui forse devi specificare altre opzioni MCLR se e' libero portalo a VCC (con una resistenza, metti 1K o 4K7). tutto fatto ma il problema rimane..... Ragionando sul listato: Dim i As Bit i = 0 TRISB = %00000000 TRISA = %11111111 PORTB = 0 inizio: If PORTA.3 = 1 Then If i = 0 Then PORTB.3 = 1 WaitMs 1000 PORTB.3 = 0 i = 1 Endif Endif Goto inizio End se tenendo l'ingresso a 1,e se la variabile i paradossalmente non fosse settata a 1 io vedrei praticamente il led sempre acceso, ma questo non avviene perchè il led rimane acceso per un secondo e poi s i spegne e rimane spento fin quando non porto di nuovo l'ingresso prima su zero e poi su 1....e questo per il listato in esame non deve avvenire visto che la condizione IF i=0 no è soddisfatta ......è come se in effetti avvenisse un reset. penso che probabilmente il PIC è danneggiato, ne ho comprato un altro , appena mi arriva rifaccio tutte le prove. Link al commento Condividi su altri siti More sharing options...
del_user_97632 Inserita: 5 marzo 2020 Segnala Share Inserita: 5 marzo 2020 (modificato) Il listato e' semplice, deve funzonare. Per un programma di poche righe puoi anche scrivere direttamente in assembly, cosi elimini ogni dubbio di compilazione (che non credo ve ne siano, ma io scriverei certamente in assembly). Sei concentrato nel sotware, ma devi postare lo schema elettrico che usi completo d'alimentaizone. Ora, seriamente, fin che non lo fai, io mi chiamo fuori. Modificato: 5 marzo 2020 da _angelo_ Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 5 marzo 2020 Segnala Share Inserita: 5 marzo 2020 4 ore fa, giolecce ha scritto: tutto fatto ma il problema rimane..... Hai misurato fisicamente sulla porta del PIC se il livello passa da 0V a 5V e viceversa? A volte quelloche si da per scontato non lo è. 4 ore fa, giolecce ha scritto: ....è come se in effetti avvenisse un reset. E l'effetto tipico di quando il programma va a ranocchie. Il program counter va ad una locazione vuota o con un codice assurdo, da li prosegue incrementandosi sino a quando fa il giromcompleto passando per lo zero. Con che compilatore stai lavorando? Che programmatore usi? Link al commento Condividi su altri siti More sharing options...
giolecce Inserita: 6 marzo 2020 Autore Segnala Share Inserita: 6 marzo 2020 Il 5/3/2020 alle 14:46 , _angelo_ ha scritto: Il listato e' semplice, deve funzonare. Per un programma di poche righe puoi anche scrivere direttamente in assembly, cosi elimini ogni dubbio di compilazione (che non credo ve ne siano, ma io scriverei certamente in assembly). Sei concentrato nel sotware, ma devi postare lo schema elettrico che usi completo d'alimentaizone. Ora, seriamente, fin che non lo fai, io mi chiamo fuori. allego lo schema elettrico 21 ore fa, Livio Orsini ha scritto: Hai misurato fisicamente sulla porta del PIC se il livello passa da 0V a 5V e viceversa? A volte quelloche si da per scontato non lo è. E l'effetto tipico di quando il programma va a ranocchie. Il program counter va ad una locazione vuota o con un codice assurdo, da li prosegue incrementandosi sino a quando fa il giromcompleto passando per lo zero. Con che compilatore stai lavorando? Che programmatore usi? ...misurato tutto ok. 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