matteonogare Inserito: 9 novembre 2004 Segnala Share Inserito: 9 novembre 2004 Scusate la domandona banale ma ho un dubbio momentaneo...poniamo di avere configurato i pin 0-3 di portB come INGRESSIe 4-7 di portB come USCITEcosa succede se faccio:movlw 255movwf PORTB?Non ricordo se l'azione ha effetto solo sui pin settati come uscite edè indolore per gli altri o se effettivamentevengono variati anche i bit impostati come ingresso.Grazie mille per qualsiasi risposta. Link al commento Condividi su altri siti More sharing options...
Claudio F Inserita: 9 novembre 2004 Segnala Share Inserita: 9 novembre 2004 Vanno a 1 solo i pin settati come uscita. Quelli settati come ingressi ovviamente restano ingressi, ma i latch interni memorizzano comunque gli 1 rimanenti, e nel caso che gli ingressi vengano subito dopo trasformati in uscite questi sarebbero i valori che assumerebbero le nuove uscite.Si usa spesso precaricare i bit nei latch interni prima di convertire gli ingressi in uscite proprio per evitare glitch nei livelli.ciao Claudio F Link al commento Condividi su altri siti More sharing options...
matteonogare Inserita: 15 novembre 2004 Autore Segnala Share Inserita: 15 novembre 2004 Grazie per la risposta:quindi supponendo di avere:Rb0-rb3 come ingressi con valori degli ingressi (imposti dall'esterno) 1,1,1,1rb4-rb7 come usciteal termine delle seguenti istruzioni:movlw b'(1010)(0000)'movwf PORTB...movf PORTB,0il valore assunto da W è il seguente:(1010)(1111) uscite-ingressiQuindi per risparmiare in istruzioni e velocità si puòimporre il valore di tutta la portaB anche se parte di questa è settata come ingressosenza influenzare il valore degli ingressi imposto dall'esterno.Corretto?Altra domandina:qual'è l'utilità dei pull-up disponibili sulla portaB? Link al commento Condividi su altri siti More sharing options...
matteonogare Inserita: 15 novembre 2004 Autore Segnala Share Inserita: 15 novembre 2004 quindi se non erro...supponendo di avereRB0-RB3 -> INGRESSI forzati dall'esterno ai valori es. 1010RB4-RB7 -> USCITEle seguenti istruzioni:movlw b'10110000'movwf PORTBmovf PORTBimpostano il valore di W a :1011 1010ovvero una scrittura di TUTTO il registro PORTB non influenzala successiva lettura di quei pin che sono impostati come INGRESSI,in quanto tra il latch delle uscite e il latch degli ingressi è interposto un buffer 3-state pilotato dal registro TRISB.Corretto?Altra domandina:l'utilità dei pull-up attivabili su PORTBin un PIC 16F62x? Link al commento Condividi su altri siti More sharing options...
matteonogare Inserita: 15 novembre 2004 Autore Segnala Share Inserita: 15 novembre 2004 Continuo con le domande da principiante ma mentre con il 16f84non ho mai avuto problemi il 16f627 mi da qualche problema(premetto che mi sono letto il DS, errata compresa)- innanzitutto chiedo conferma delle mia ultima considerazione(mi scuso per il doppio invio ma per un disguido di rete pensavodi aver perso il mio primo invio).- sul 18f627 avevo la seguente sequenza di istruzioni bsf PORTA,2mainloop delay500ms bcf PORTA,3 delay500ms bsf PORTA,3 goto mainloopRISULTATOil segnale sull'uscita 3 varia correttamentema il segnale sull'uscita 2 è inchiodato a 0Ho quindi testato la funzionalità dell'uscita 2con il seguente codice:mainloop delay500ms bcf PORTA,2 bcf PORTA,3 delay500ms bsf PORTA,2 bsf PORTA,3 goto mainloopRISULTATOl'uscita 2 varia correttamente ma ora l'uscita 3 è inchiodata a 0!Il pic è da buttare o c'è qualche altro motivo?Ringrazio per qualsiasi risposta.Matteo Link al commento Condividi su altri siti More sharing options...
Claudio F Inserita: 15 novembre 2004 Segnala Share Inserita: 15 novembre 2004 Quindi per risparmiare in istruzioni e velocità si puòimporre il valore di tutta la portaB anche se parte di questa è settata come ingressosenza influenzare il valore degli ingressi imposto dall'esterno.ovvero una scrittura di TUTTO il registro PORTB non influenzala successiva lettura di quei pin che sono impostati come INGRESSI,in quanto tra il latch delle uscite e il latch degli ingressi è interposto unbuffer 3-state pilotato dal registro TRISB Link al commento Condividi su altri siti More sharing options...
giacomo56 Inserita: 15 novembre 2004 Segnala Share Inserita: 15 novembre 2004 Devi disabilitare gli ingressi dei comparatori (porta) caricando 7 in CMCON.Ciao. Link al commento Condividi su altri siti More sharing options...
matteonogare Inserita: 16 novembre 2004 Autore Segnala Share Inserita: 16 novembre 2004 ho trovato l'errore.avevo inserito l'istruzione per disabilitare i comparatori...ma non avevo selezionato il banco di memoria giustoe quindi non andavo a scrivere su CMCON.Adesso funziona tutto.Grazie e ciao.Teo 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