09 aprile 06, 02:34 | #1 (permalink) Top |
User Data registr.: 28-05-2005 Residenza: Roma
Messaggi: 660
| Datasheet misterioso
Salve a tutti, scusate ma trovo un pò misteriosa una parte del datasheet del PIC16F628, precisamente la parte a pagina 44 quando spiega che due successive scritture su porte di I/O possono generare uno stato sconosciuto? Come funziona questa cosa? Anche l'esempio, perchè non genera due porte in out come sembrerebbe? Qualcuno mi aiuti, vi prego!!!! |
09 aprile 06, 13:30 | #2 (permalink) Top |
User Data registr.: 28-05-2005 Residenza: Roma
Messaggi: 660
|
Vi posto qui di seguito quella parte del datasheet che mi è molto oscura..... vi prego qualcuno mi aiuti..... è la prima volta che provo a programmare il 16f628, e non ho capito una parte del datasheet a mio avviso importante.... . ----------------------------------------------------------------------- For example, a BSF operation on Bit 5 of PORTB will cause all eight bits of PORTB to be read into the CPU. Then the BSF operation takes place on Bit 5 and PORTB is written to the output latches. If another bit of PORTB is used as a bi-directional I/O pin (e.g., Bit 0) and it is defined as an input at this time, the input signal present on the pin itself would be read into the CPU and rewritten to the data latch of this particular pin, overwriting the previous content. As long as the pin stays in the Input mode, no problem occurs. However, if Bit 0 is switched into Output mode later on, the content of the data latch may now be unknown. ----------------------------------------------------------------------- E anche il piccolo esempietto che segue poco dopo: ----------------------------------------------------------------------- ;Initial PORT settingsORTB<7:4> Inputs ; ; PORTB<3:0> Outputs ;PORTB<7:6> have external pull-up and are not ;connected to other circuitry ; ; PORT latchPORT Pins ---------- ---------- BCF STATUS, RP0 ; BCF PORTB, 7 ;01pp pppp 11pp pppp BSF STATUS, RP0 ; BCF TRISB, 7 ;10pp pppp 11pp pppp BCF TRISB, 6 ;10pp pppp 10pp pppp ; ;Note that the user may have expected the pin ;values to be 00pp pppp. The 2nd BCF caused ;RB7 to be latched as the pin value (High). ----------------------------------------------------------------------- Non riesco a capire, di quando parla perchè finche il segnale di input di quel pin resta input non ci sono problemi, ma se viene cambiato in output genera un valore sconosciuto, poi quando si riferisce a: " .... the pin itself would be....." si riferisce al bit 0 o al bit 5? Grazie ancora |
09 aprile 06, 18:37 | #3 (permalink) Top |
User Data registr.: 21-01-2004 Residenza: Milano
Messaggi: 989
|
Non mi sembra così oscuro... L'operazione di set/rest bit su una porta legge il contenuto della porta in quel momento, cambia il bit che si vuole settare/rsettare e riscrive il contenuto tutto il contenuto della porta; lo stato del bit che su cui si opera è sempre quello giusto. La nota vuole semplicemente mettere in evidenza il fatto che viene letto ed aggiornato tutto il registro e che quindi il registro di uscita dei bit usati come ingresso potrebbe variare in funzione dello stato del pin in quel momento; questo non provoca nessun problema fino a quando il bit in questione rimane un ingresso, ma se si cambia la direzione del pin facendolo diventare una uscita senza aver prima impostato il valore voluto, il valore che assumerà sarà quello scritto nel suo registro di uscita e potrebbe non essere quello che ci aspettiamo. Morale 1): prima di cambiare lo stato di una porta da in a out, assicurarsi di aver impostato i valori voluti. Morale 2): non usare l'istruzione set/reset di un singolo bit sulle porte di uscita se è necessario cambiare la direzione della porta durante il programma: in questo caso conviene creare un registro 'copia' della porta, effettuare le operazioni singole su questo registro e quindi copiarlo sulla porta di uscita. Michele
__________________ __________________________________________________ The worst day flying is better than the best day working. |
Bookmarks |
| |
Discussioni simili | ||||
Discussione | Autore discussione | Forum | Commenti | Ultimo Commento |
brand misterioso | Corrado | Aeromodellismo | 2 | 23 febbraio 07 15:58 |
Power Datasheet | danverz | Elimodellismo Motore Elettrico | 2 | 16 gennaio 06 17:53 |
Oggetto misterioso...... | mephisto | Aeromodellismo Volo Elettrico | 49 | 25 ottobre 05 09:32 |
Datasheet batterie Lipo | Paperinik | Aeromodellismo Volo Elettrico | 6 | 25 aprile 04 14:26 |