Torna indietro   BaroneRosso.it - Forum Modellismo > Elettronica > Circuiti Elettronici


Rispondi
 
Strumenti discussione Visualizzazione
Vecchio 01 marzo 11, 10:44   #1 (permalink)  Top
User
 
L'avatar di faustog_2
 
Data registr.: 19-07-2008
Residenza: catania
Messaggi: 978
COME scrivere su EEPROM -16F628

chiedo qui se qualcuno ha mai avuto la fortuna di riuscire a scrivere su EEPROM del 16F628.

Seguendo passo passo le indicazioni del DataSheet non ci si riesce...


BSF STATUS,RP0 ; Bank 1

BTFSC EECON1,WR ;Wait for write
GOTO $-1 ;to complete

MOVLW 0X00 ;
MOVWF EEADR ; Address to read
MOVF VALORE,W
MOVWF EEDATA ; carica in EEDATA il valore di VALORE

BCF INTCON,GIE ; Disable INTs.

BSF EECON1,WREN ; Enable write
MOVLW 0X55 ;
MOVWF EECON2 ; Write 55h
MOVLW 0XAA ;
MOVWF EECON2 ; Write AAh
ZZZ BSF EECON1,WR ; Set WR bit ; BEGIN WRITE
BTFSC EECON1,WR ; Testa il bit WR e salta l’istruzione successiva se 0
GOTO ZZZ
BSF INTCON,GIE ; Enable INTs.
BCF STATUS,RP0 ; Bank 0
faustog_2 non è collegato   Rispondi citando
Vecchio 01 marzo 11, 14:59   #2 (permalink)  Top
User
 
L'avatar di faustog_2
 
Data registr.: 19-07-2008
Residenza: catania
Messaggi: 978
CORREGGO E AGGIUNGO qualcosina

allora se per caso qualcuno ha la curiosità, a seguire trova una codifica in C , scaricata da un forum

vi è una vorispondenza qusi uno ad uno

************* CODIFICA IN C *********


#include <pic16f6x.h>

void eeprom_w(char addr,char value)
{
EEADR=addr; // indirizzo cella memoria eeprom
EEDATA=value; // valore da memorizzare
GIE=0; // disabilita interrupt
WREN=1; // abilita la scrittura
EECON2=0x55; // Sequenza richiesta
EECON2=0xAA;
WR=1;
while(WR);
WREN=0;
GIE=1; // riabilita global interrupt
}

/* ************************************************** ******/
* Funzione per la ettura dati dalla memoria EEprom del PIC ** ************************************************** ********/
unsigned char eeprom_r(char addr)

{

EEADR=addr; // indirizzo cella memoria eeprom
RD=1;
return EEDATA;

}


************* CODIFICA IN ASSEMBLER *********


bsf STATUS,RP0 ;Swap to bank 1

movwf EEDATA
movlw b'00000000'
movwf EEADR
BCF INTCON,GIE ;Disable INTs.
bsf EECON1,WREN ;Enable Write
movlw H'55' ;Write 55h to EECON2
movwf EECON2
movlw H'AA' ;Write AAh to EECON2
movwf EECON2
bsf EECON1,WR ;Begin write

LoopWReeprom
btfsc EECON1,WR ;Writing done ?
goto LoopWReeprom ;No, wait

bcf EECON1,WREN ;Enable Write
BSF INTCON,GIE ;Enable INTs
faustog_2 non è collegato   Rispondi citando
Vecchio 02 marzo 11, 09:20   #3 (permalink)  Top
User
 
L'avatar di MSchiepp
 
Data registr.: 21-01-2004
Residenza: Milano
Messaggi: 989
Il codice sembra 'quasi' giusto e deve funzionare; nel primo esempio di scrittura la posizione dell'etichetta ZZZ è sbagliata e va posizionata una riga sotto, altrimenti continui a settare il bit WR intanto che lo aspetti a '0'.

Dopo aver settato il it WR devi anche mettere a '0' il bit WREN.
Il test su WR può essere fatto solo all'inizio o alla fine del ciclo di scrittura.

Il problema potrebbe essere la rilettura del dato scritto in EEPROM; prova a scrivere un valore poi resetta il micro e prova a leggerlo.

Questo è il codce della libreria del compilatore C che a me funziona da qualche anno...

/************************************************** *********************/
/****** EEPROM memory read/write macros and function definitions *******/
/************************************************** *********************/
/* NOTE WELL:
The macro EEPROM_READ() is NOT safe to use immediately after any
write to EEPROM, as it does NOT wait for WR to clear. This is by
design, to allow minimal code size if a sequence of reads is
desired. To guarantee uncorrupted writes, use the function
eeprom_read() or insert
while(WR)continue;
before calling EEPROM_READ().
*/
#if EEPROM_SIZE > 0
#ifdef __FLASHTYPE
// macro versions of EEPROM write and read
#define EEPROM_WRITE(addr, value) \
do{ \
while(WR)continue;EEADR=(addr);EEDATA=(value); \
EECON1&=0x7F;CARRY=0;if(GIE)CARRY=1;GIE=0; \
WREN=1;EECON2=0x55;EECON2=0xAA;WR=1;WREN=0; \
if(CARRY)GIE=1; \
}while(0)
#define EEPROM_READ(addr) ((EEADR=(addr)),(EECON1&=0x7F),(RD=1),EEDATA)
#else // else doesn't write flash
#define EEPROM_WRITE(addr, value) \
do{ \
while(WR)continue;EEADR=(addr);EEDATA=(value); \
CARRY=0;if(GIE)CARRY=1;GIE=0; \
WREN=1;EECON2=0x55;EECON2=0xAA;WR=1;WREN=0; \
if(CARRY)GIE=1; \
}while(0)
#define EEPROM_READ(addr) ((EEADR=(addr)),(RD=1),EEDATA)
#endif

Michele
__________________
__________________________________________________
The worst day flying is better than the best day working.
MSchiepp non è collegato   Rispondi citando
Vecchio 03 marzo 11, 09:09   #4 (permalink)  Top
User
 
L'avatar di faustog_2
 
Data registr.: 19-07-2008
Residenza: catania
Messaggi: 978
grazie

grazie mille della risposta..

ho individuato il problema...
stranamente non passa al banco 1 sebbene l'istruzione BSF STATUS,RP0

mettendo una RETURN PRIMA DI QUESTA ISTRUZIONE, TUTTO OK, non legge perchè esco prima però non si blocca.. se metto la return dopo allora si blocca.. segno che è appunto questa istruzione...

nel file dell'assemblatore zero Error, zero Warning ,, però 17 Messaggi tutti del tipo

Register in operand not in bank 0. Ensure that bank bits are correct.

segno che appunto sta cercando di scrivere o leggere in EEDATA o in EEADR che appunto non si trovano in Bank 0, però ovviamente ho attendamente messo l'istruzione BSF STATUS,RP0

ecco l'ultima versione delle procedure in assembler:

;_________________________________________________ ____________
R_EEP MOVLW H'00'
BSF STATUS,5 ; * Bank 1 *
MOVWF EEADR ; Carica indirizzo
BSF EECON1,RD ; EE Read
MOVF EEDATA,W
BCF STATUS,5 ; * Bank 0 *

RETURN
;_________________________________________________ ____________
W_EEP MOVLW H'00'
BSF STATUS,RP0 ; * Bank 1 *
MOVWF EEADR ; Carica indirizzo

MOVF VALORE,W
MOVWF EEDATA ; carica il valore

BCF INTCON,GIE ; Disable INTs.
BSF EECON1,WREN ; Enable write

MOVLW H'55' ;
MOVWF EECON2 ; Write 55h
MOVLW H'AA' ;
MOVWF EECON2 ; Write AAh
BSF EECON1,WR ; Set WR bit ; BEGIN WRITE

btfsc EECON1,WR ; Writing done ?
goto $-1 ; No, wait

BCF EECON1,WREN ; Enable write
BCF STATUS,RP0 ; * Bank 0 *

BSF INTCON,GIE ; Enable INTs.

RETURN


c'è da impazzire!
credo che sia un problema di MICRO. credo che dovrò passare al 16F628A

Ho controllato ovviamente il file di include dove si vede perfettamente che i registri
EEDATA
EEADR
ecc
sono nel bank 1



W EQU H'0000'
F EQU H'0001'

;------------------------------------------------------
; Register Files of Bank0
;------------------------------------------------------
INDF EQU H'0000'
TMR0 EQU H'0001'
PCL EQU H'0002'
STATUS EQU H'0003'
FSR EQU H'0004'
PORTA EQU H'0005'
PORTB EQU H'0006'
PCLATH EQU H'000A'
INTCON EQU H'000B'
PIR1 EQU H'000C'
TMR1L EQU H'000E'
TMR1H EQU H'000F'
T1CON EQU H'0010'
TMR2 EQU H'0011'
T2CON EQU H'0012'
CCPR1L EQU H'0015'
CCPR1H EQU H'0016'
CCP1CON EQU H'0017'
RCSTA EQU H'0018'
TXREG EQU H'0019'
RCREG EQU H'001A'
CMCON EQU H'001F'
;------------------------------------------------------
; Register Files of Bank1
;------------------------------------------------------
OPTION_REG EQU H'0081'
TRISA EQU H'0085'
TRISB EQU H'0086'
PIE1 EQU H'008C'
PCON EQU H'008E'
PR2 EQU H'0092'
TXSTA EQU H'0098'
SPBRG EQU H'0099'
EEDATA EQU H'009A'
EEADR EQU H'009B'
EECON1 EQU H'009C'
EECON2 EQU H'009D'
VRCON EQU H'009F'

;----- STATUS Bits --------------------------------------------------------

IRP EQU H'0007'
RP1 EQU H'0006'
RP0 EQU H'0005'
NOT_TO EQU H'0004'
NOT_PD EQU H'0003'
Z EQU H'0002'
DC EQU H'0001'
C EQU H'0000'

;----- INTCON Bits --------------------------------------------------------

GIE EQU H'0007'
PEIE EQU H'0006'
T0IE EQU H'0005'
INTE EQU H'0004'
RBIE EQU H'0003'
T0IF EQU H'0002'
INTF EQU H'0001'
RBIF EQU H'0000'

;----- PIR1 Bits ----------------------------------------------------------

EEIF EQU H'0007'
CMIF EQU H'0006'
RCIF EQU H'0005'
TXIF EQU H'0004'
CCP1IF EQU H'0002'
TMR2IF EQU H'0001'
TMR1IF EQU H'0000'

;----- T1CON Bits ---------------------------------------------------------
T1CKPS1 EQU H'0005'
T1CKPS0 EQU H'0004'
T1OSCEN EQU H'0003'
NOT_T1SYNC EQU H'0002'
TMR1CS EQU H'0001'
TMR1ON EQU H'0000'

;----- T2CON Bits ---------------------------------------------------------
TOUTPS3 EQU H'0006'
TOUTPS2 EQU H'0005'
TOUTPS1 EQU H'0004'
TOUTPS0 EQU H'0003'
TMR2ON EQU H'0002'
T2CKPS1 EQU H'0001'
T2CKPS0 EQU H'0000'

;----- CCP1CON Bits ---------------------------------------------------------
CCP1X EQU H'0005'
CCP1Y EQU H'0004'
CCP1M3 EQU H'0003'
CCP1M2 EQU H'0002'
CCP1M1 EQU H'0001'
CCP1M0 EQU H'0000'

;----- RCSTA Bits ---------------------------------------------------------
SPEN EQU H'0007'
RX9 EQU H'0006'
SREN EQU H'0005'
CREN EQU H'0004'
ADEN EQU H'0003'
FERR EQU H'0002'
OERR EQU H'0001'
RX9D EQU H'0000'

;----- CMCON Bits ---------------------------------------------------------

C2OUT EQU H'0007'
C1OUT EQU H'0006'
C2INV EQU H'0005'
C1INV EQU H'0004'
CIS EQU H'0003'
CM2 EQU H'0002'
CM1 EQU H'0001'
CM0 EQU H'0000'

;----- OPTION Bits --------------------------------------------------------

NOT_RBPU EQU H'0007'
INTEDG EQU H'0006'
T0CS EQU H'0005'
T0SE EQU H'0004'
PSA EQU H'0003'
PS2 EQU H'0002'
PS1 EQU H'0001'
PS0 EQU H'0000'

;----- PIE1 Bits ----------------------------------------------------------

EEIE EQU H'0007'
CMIE EQU H'0006'
RCIE EQU H'0005'
TXIE EQU H'0004'
CCP1IE EQU H'0002'
TMR2IE EQU H'0001'
TMR1IE EQU H'0000'

;----- PCON Bits ----------------------------------------------------------

OSCF EQU H'0003'
NOT_POR EQU H'0001'
NOT_BO EQU H'0000'
NOT_BOR EQU H'0000'
NOT_BOD EQU H'0000'

;----- TXSTA Bits ----------------------------------------------------------
CSRC EQU H'0007'
TX9 EQU H'0006'
TXEN EQU H'0005'
SYNC EQU H'0004'
BRGH EQU H'0002'
TRMT EQU H'0001'
TX9D EQU H'0000'

;----- EECON1 Bits ---------------------------------------------------------
WRERR EQU H'0003'
WREN EQU H'0002'
WR EQU H'0001'
RD EQU H'0000'

;----- VRCON Bits ---------------------------------------------------------

VREN EQU H'0007'
VROE EQU H'0006'
VRR EQU H'0005'
VR3 EQU H'0003'
VR2 EQU H'0002'
VR1 EQU H'0001'
VR0 EQU H'0000'

;================================================= =========================
;
; RAM Definition
;
;================================================= =========================

__MAXRAM H'01FF'
__BADRAM H'07'-H'09', H'0D', H'13'-H'14', H'1B'-H'1E'
__BADRAM H'87'-H'89', H'8D', H'8F'-H'91', H'93'-H'97', H'9E'
__BADRAM H'105', H'107'-H'109', H'10C'-H'11F', H'150'-H'16F'
__BADRAM H'185', H'187'-H'189', H'18C'-H'1EF'

;================================================= =========================
;
; Configuration Bits
;
;================================================= =========================

_BODEN_ON EQU H'3FFF'
_BODEN_OFF EQU H'3FBF'
_CP_ALL EQU H'03FF'
_CP_75 EQU H'17FF'
_CP_50 EQU H'2BFF'
_CP_OFF EQU H'3FFF'
_DATA_CP_ON EQU H'3EFF'
_DATA_CP_OFF EQU H'3FFF'
_PWRTE_OFF EQU H'3FFF'
_PWRTE_ON EQU H'3FF7'
_WDT_ON EQU H'3FFF'
_WDT_OFF EQU H'3FFB'
_LVP_ON EQU H'3FFF'
_LVP_OFF EQU H'3F7F'
_MCLRE_ON EQU H'3FFF'
_MCLRE_OFF EQU H'3FDF'
_ER_OSC_CLKOUT EQU H'3FFF'
_ER_OSC_NOCLKOUT EQU H'3FFE'
_INTRC_OSC_CLKOUT EQU H'3FFD'
_INTRC_OSC_NOCLKOUT EQU H'3FFC'
_EXTCLK_OSC EQU H'3FEF'
_LP_OSC EQU H'3FEC'
_XT_OSC EQU H'3FED'
_HS_OSC EQU H'3FEE'

LIST




Citazione:
Originalmente inviato da MSchiepp Visualizza messaggio
Il codice sembra 'quasi' giusto e deve funzionare; nel primo esempio di scrittura la posizione dell'etichetta ZZZ è sbagliata e va posizionata una riga sotto, altrimenti continui a settare il bit WR intanto che lo aspetti a '0'.

Dopo aver settato il it WR devi anche mettere a '0' il bit WREN.
Il test su WR può essere fatto solo all'inizio o alla fine del ciclo di scrittura.

Il problema potrebbe essere la rilettura del dato scritto in EEPROM; prova a scrivere un valore poi resetta il micro e prova a leggerlo.

Questo è il codce della libreria del compilatore C che a me funziona da qualche anno...

/************************************************** *********************/
/****** EEPROM memory read/write macros and function definitions *******/
/************************************************** *********************/
/* NOTE WELL:
The macro EEPROM_READ() is NOT safe to use immediately after any
write to EEPROM, as it does NOT wait for WR to clear. This is by
design, to allow minimal code size if a sequence of reads is
desired. To guarantee uncorrupted writes, use the function
eeprom_read() or insert
while(WR)continue;
before calling EEPROM_READ().
*/
#if EEPROM_SIZE > 0
#ifdef __FLASHTYPE
// macro versions of EEPROM write and read
#define EEPROM_WRITE(addr, value) \
do{ \
while(WR)continue;EEADR=(addr);EEDATA=(value); \
EECON1&=0x7F;CARRY=0;if(GIE)CARRY=1;GIE=0; \
WREN=1;EECON2=0x55;EECON2=0xAA;WR=1;WREN=0; \
if(CARRY)GIE=1; \
}while(0)
#define EEPROM_READ(addr) ((EEADR=(addr)),(EECON1&=0x7F),(RD=1),EEDATA)
#else // else doesn't write flash
#define EEPROM_WRITE(addr, value) \
do{ \
while(WR)continue;EEADR=(addr);EEDATA=(value); \
CARRY=0;if(GIE)CARRY=1;GIE=0; \
WREN=1;EECON2=0x55;EECON2=0xAA;WR=1;WREN=0; \
if(CARRY)GIE=1; \
}while(0)
#define EEPROM_READ(addr) ((EEADR=(addr)),(RD=1),EEDATA)
#endif

Michele
faustog_2 non è collegato   Rispondi citando
Vecchio 03 marzo 11, 13:58   #5 (permalink)  Top
User
 
L'avatar di MSchiepp
 
Data registr.: 21-01-2004
Residenza: Milano
Messaggi: 989
Citazione:
Originalmente inviato da faustog_2 Visualizza messaggio
nel file dell'assemblatore zero Error, zero Warning ,, però 17 Messaggi tutti del tipo

Register in operand not in bank 0. Ensure that bank bits are correct.

segno che appunto sta cercando di scrivere o leggere in EEDATA o in EEADR che appunto non si trovano in Bank 0, però ovviamente ho attendamente messo l'istruzione BSF STATUS,RP0
Attenzione a non fare confusione... il messaggio che vedi serve semplicemente a ricordare che le locazioni indicate sono in un banco diverso da quello di default e quindi è necessario predisporre il baco giusto (letteralmente: il registro nell'operando non è nel banco 0: verificare che i bit di (selezione del) banco siano corretti).

Il compilatore (in questo caso l'assemblatore) non sa se il micro riuscirà o meno a leggere in quella locazione e quindi non può segnalarti un errore del genere! Quindi il problema non è nella selezione del banco, cosa che puoi verificare facilmente provando a settare il registro di direzione di una porta e a vedere se la porta si comporta di conseguenza.

Cosa stai usando per le prove? Come fai a verificare e il dato è stato scritto o meno? Questa sera provo il tuo codice: vedrai che si risolve tutto.

Michele
__________________
__________________________________________________
The worst day flying is better than the best day working.
MSchiepp non è collegato   Rispondi citando
Vecchio 04 marzo 11, 00:04   #6 (permalink)  Top
User
 
L'avatar di faustog_2
 
Data registr.: 19-07-2008
Residenza: catania
Messaggi: 978
Ok Risolto!!!!

come in oggetto.. risolto tutto..

grazie lo stesso MSchiepp.... ..mi piace poter condividere con qualcuno questa esperienza.

allora il codice andava bene.. il problema era che io cercavo prima di leggere poi di scrivere.. è qui che mi sono incasinato.

Il risultato lo ottengo su un display a 7 segmenti.

Allora ho tre bottoni interruttori su RA0,RA1,RA2
1) il primo serve a navigare su dei numeri cha vanno da 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

2) un secondo interruttore serve a scrivere il numero correntemente mostrato nel display

3) infine il terzo bottone serve a leggere il numero registro nella EEPROM

BEne adesso se provo a programmare il MICRo alla prima volta che lo uso se provo a premere il bottone 2, il micro si blocca, cerca di leggere dalla EEPROM che è vuota.

PErò se accendo il MIcro navigo tra i numeri ...premo il tasto 3 il numero corrente viene registrato nella EEPROM, se continuo a navigare e poi premo il tasto 2 OK mi fa vedere il numero registrato.. se stacco tutto e riaccendo il micro e clicco direttamente il tasto 2 ecco che appare il numero desiderato. CVD (come volevasi dimostrare) questa volta non si blocca perchè trova nella EEPROM un dato.

Perfetto questo è un bel il punto di partenza! sommando il fatto che riesco a usare la USART, i comparatori, i TIMER ...mi pare d'aver raggiunto un buon livello sul 16F628.

mi posso ritenere soddisfatto... ..il 16F628 è un gioiellino... il suo datasheet risulta spesso poco chiaro, e non dico per l'inglese, ma per il giro di parole infinite per speigare concetti spesso molto semplici. Però veramente un gioiellino, a guardarlo sembra un niente.. invece...

OGGI mi sono preso il 16F876 .... comincierò a lavorarci sopra... voglio iniziare a lavorare sugli ingressi analogici.

a presto
fausto





Citazione:
Originalmente inviato da MSchiepp Visualizza messaggio
Attenzione a non fare confusione... il messaggio che vedi serve semplicemente a ricordare che le locazioni indicate sono in un banco diverso da quello di default e quindi è necessario predisporre il baco giusto (letteralmente: il registro nell'operando non è nel banco 0: verificare che i bit di (selezione del) banco siano corretti).

Il compilatore (in questo caso l'assemblatore) non sa se il micro riuscirà o meno a leggere in quella locazione e quindi non può segnalarti un errore del genere! Quindi il problema non è nella selezione del banco, cosa che puoi verificare facilmente provando a settare il registro di direzione di una porta e a vedere se la porta si comporta di conseguenza.

Cosa stai usando per le prove? Come fai a verificare e il dato è stato scritto o meno? Questa sera provo il tuo codice: vedrai che si risolve tutto.

Michele
faustog_2 non è collegato   Rispondi citando
Vecchio 04 marzo 11, 00:16   #7 (permalink)  Top
User
 
L'avatar di MSchiepp
 
Data registr.: 21-01-2004
Residenza: Milano
Messaggi: 989
Bene, bravo!
Ci deve essere però un altro piccolo problemino... quando leggi una locazione in EEPROM, non può essere 'vuota' e quindi il micro la legge comunque, anche se il dato contenuto non è significativo (quando è cancellata è a 0xFF); se ti si blocca il micro in lettura qualcosa non va per il verso giusto...

Michele
__________________
__________________________________________________
The worst day flying is better than the best day working.
MSchiepp non è collegato   Rispondi citando
Vecchio 04 marzo 11, 15:29   #8 (permalink)  Top
User
 
L'avatar di faustog_2
 
Data registr.: 19-07-2008
Residenza: catania
Messaggi: 978
ok

ok appena ho tempo indago... per intando sto documentando tutto... stasera ti invio una foto... comunque sono contento.. tale abilità mi apre un insieme di possibilità..

fausto

Citazione:
Originalmente inviato da MSchiepp Visualizza messaggio
Bene, bravo!
Ci deve essere però un altro piccolo problemino... quando leggi una locazione in EEPROM, non può essere 'vuota' e quindi il micro la legge comunque, anche se il dato contenuto non è significativo (quando è cancellata è a 0xFF); se ti si blocca il micro in lettura qualcosa non va per il verso giusto...

Michele
faustog_2 non è collegato   Rispondi citando
Vecchio 04 marzo 11, 23:44   #9 (permalink)  Top
User
 
L'avatar di faustog_2
 
Data registr.: 19-07-2008
Residenza: catania
Messaggi: 978
ok

ecco un immagine della demo

Ovviamente il tutto ha solo scopo didattico, per i ragazzi di scuole superiori, quindi mi sta bene avere tre tasti.... in realtà si potrebbe fare tutto con un solo tasto. PEr esempio il tasto legge dalla eeprom, e comunque se premuto incrementa, se premuto per piu di due secondi allora registra su eeprom e quindi alla prossima riaccensione ci si trova l'ultimo numero registrato.



Citazione:
Originalmente inviato da MSchiepp Visualizza messaggio
Bene, bravo!
Ci deve essere però un altro piccolo problemino... quando leggi una locazione in EEPROM, non può essere 'vuota' e quindi il micro la legge comunque, anche se il dato contenuto non è significativo (quando è cancellata è a 0xFF); se ti si blocca il micro in lettura qualcosa non va per il verso giusto...

Michele
faustog_2 non è collegato   Rispondi citando
Rispondi

Bookmarks




Regole di scrittura
Non puoi creare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi inserire allegati
Non puoi modificare i tuoi messaggi

BB code è Attivato
Le faccine sono Attivato
Il codice [IMG] è Attivato
Il codice HTML è Disattivato
Trackbacks è Disattivato
Pingbacks è Disattivato
Refbacks è Disattivato


Discussioni simili
Discussione Autore discussione Forum Commenti Ultimo Commento
PIC 16F628, ricezione seriale.. faustog_2 Circuiti Elettronici 18 11 novembre 10 13:53
alimentazione pic 16f628 gungun Circuiti Elettronici 6 04 settembre 09 00:05
Modulo USART 16F628 SoldatoSemplice Circuiti Elettronici 1 06 marzo 06 18:20
Schemi - Regolatore con Pic 16F628 BaroneRosso News 0 17 giugno 05 15:07
regolatore di giri con pic 16f628 fabari Circuiti Elettronici 5 23 marzo 05 21:02



Tutti gli orari sono GMT +2. Adesso sono le 19:28.


Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002