- Messaggi: 1222
- Ringraziamenti ricevuti 104
Trucchi e soluzioni non sempre logiche..per non impazzire!
- StefA
-
Autore della discussione
- Moderatore
-
Less
Di più
11 Anni 3 Mesi fa - 11 Anni 2 Mesi fa #1
da StefA
..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]
Trucchi e soluzioni non sempre logiche..per non impazzire! è stato creato da StefA
A molti di noi sarà già capitato, ad altri capiterà di perdere ore e giorni su funzionamenti all'apparenza inspiegabili, sia software che hardware... spesso la soluzione è qualcosa di semplicissimo a cui non pensiamo... a volte invece è qualcosa che non sappiamo, non ci sembra logico e ci arriviamo quasi per caso.
Questo topic nasce per raccogliere tutti questi casi e semplificarci la vita grazie al tempo perso di chi ci ha sbattuto la testa.. chiunque voglia "partecipare" risponda con la propria esperienza, provvederò a mettere tutto sul questo post..
Grazie a tutti.
Ste
Questo topic nasce per raccogliere tutti questi casi e semplificarci la vita grazie al tempo perso di chi ci ha sbattuto la testa.. chiunque voglia "partecipare" risponda con la propria esperienza, provvederò a mettere tutto sul questo post..
Grazie a tutti.
Ste
- Se utilizzate la Freedom II con l'RTCC PCF8563, sappiate che così com'è perde qualche secondo all'ora. Si risolve facilmente mettendo un condensatore da 5-25pF sul quarzo del PCF8563. [Thanks to Me per la domanda & fer_ver per la soluzione] topic
- In Mplab Ide con C18, errori apparentemente inesistenti potrebbero essere risolti lasciando una riga vuota alla fine del main, oppure commentando la prima riga del main. [Thanks to Mauro Laurenti & Pinna] topic
- Quando si inizializzano o si azzerano dei vettori con dei cicli, prestare particolare attenzione agli estremi, fino a che punto "conta", se ad esempio ho un vettore di 100 char e per errore si mette <120 al posto di <100, l'inizializzazione cambia anche 20 valori in più rispetto a quello che ci aspettiamo, e suddetti valori possono essere qualsiasi cosa nel nostro programma, di conseguenza possono esserci comportamenti anomali o errori inspiegabili. [Thanks to fer_ver] post #2
- Utilizzando la funzione "void putUSBUSART(char *data, BYTE length)" prestare particolare attenzione a cosa viene passato, deve essere un indirizzo di una variabile o un puntatore ad un array.
Es:Code:char data =0x31;
se scrivo nel seguente modo è sbagliato...Code:putUSBUSART(data,1);
il modo corretto è il seguente...Code:putUSBUSART(&data,1);
se invece passo un array posso scrivere direttamente data perché è il puntatore al primo dato...come segue..Code:char data[] = {0x18,0x42,0x55,0x54,0x54,0x4F,0x4E,0x3A,0x20,0x32,0x00}; putUSBUSART(data,11);
[Thanks to shinshi] post #3 - Un utente che utilizzava come antivirus Comodo, ha riscontrato problemi. Non venivano compilati i progetti con MPLABX (1.90) e C18 (3.44) perché l'antivirus bloccava il tutto; avendo i messaggi di segnalazione dell'antivirus disabilitati, non è stato semplice capire il problema. Lo stesso problema potrebbe essere causato da altri antivirus e con altri software e sistemi operativi. [Thanks to Hector] topic
..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]
Ultima Modifica 11 Anni 2 Mesi fa da StefA. Motivo: Aggiornamento
Si prega Accesso o Crea un account a partecipare alla conversazione.
- fer_ver
-
- Premium Utente
-
Less
Di più
- Messaggi: 105
- Ringraziamenti ricevuti 12
11 Anni 3 Mesi fa #2
da fer_ver
Risposta da fer_ver al topic Trucchi e soluzioni non sempre logiche..per non impazzire!
La settimana scorsa ho passato alcune sere a capire perché un array che dichiaravo all'inizio
del Main in questo modo :
unsigned char keys[]={1,4,7,'*',2,5,8,0,3,6,9,'#','A','B','C','D'};
ad un certo, inspiegabilmente, punto cambiava valore.
Ho poi capito che era dovuto al fatto che avevo dichiarato un altro array in questo modo
unsigned char MemTemp[100];
ed ad un certo punto nel programma andavo ad azzerarlo con un ciclo for di questo tipo
for(x=0; x<120;x++){
MemTemp[x]= 0;
}
.... x arrivava a 119(per mio errore), superava la lunghezza dell'array MemTemp e continuava a scrivere sulle variabili successive in memoria che nel mio caso era l'array Keys[].
Spero di essermi spigato bene.
Ciao
Renato
del Main in questo modo :
unsigned char keys[]={1,4,7,'*',2,5,8,0,3,6,9,'#','A','B','C','D'};
ad un certo, inspiegabilmente, punto cambiava valore.
Ho poi capito che era dovuto al fatto che avevo dichiarato un altro array in questo modo
unsigned char MemTemp[100];
ed ad un certo punto nel programma andavo ad azzerarlo con un ciclo for di questo tipo
for(x=0; x<120;x++){
MemTemp[x]= 0;
}
.... x arrivava a 119(per mio errore), superava la lunghezza dell'array MemTemp e continuava a scrivere sulle variabili successive in memoria che nel mio caso era l'array Keys[].
Spero di essermi spigato bene.
Ciao
Renato
Si prega Accesso o Crea un account a partecipare alla conversazione.
- shinshi
-
- Elit Utente
-
Less
Di più
- Messaggi: 293
- Ringraziamenti ricevuti 29
11 Anni 3 Mesi fa #3
da shinshi
Risposta da shinshi al topic Trucchi e soluzioni non sempre logiche..per non impazzire!
Ottima iniziativa Ste.
Settimana scorsa sono impazzito anche io nel tentativo di usare la funzione
che fa parte del framework USB Microchip e descritta nella guida di Mauro Laurenti "Leggere e Scrivere dati
via USB". In breve questa funzione permette la scrittura di dati dalla RAM al modulo USB.
*data: Puntatore alla struttura dati residente in memoria RAM
length: lunghezza della struttura dati (numero di byte).
Ciò che non capivo inizialmente era che passando alla funzione una variabile char
In realtà passavo alla funzione il dato che in RAM è contenuto nella posizione di memoria 0x31, fino a che non ho corretto in
In quasto modo passo alla funzione l'indirizzo RAM che contiene la variabile char data.
Se si utilizza invece un array va bene
Perchè in questo caso data contiene il puntatore all'array.
Saluti
Luca
Settimana scorsa sono impazzito anche io nel tentativo di usare la funzione
Code:
void putUSBUSART(char *data, BYTE length)
via USB". In breve questa funzione permette la scrittura di dati dalla RAM al modulo USB.
*data: Puntatore alla struttura dati residente in memoria RAM
length: lunghezza della struttura dati (numero di byte).
Ciò che non capivo inizialmente era che passando alla funzione una variabile char
Code:
char data =0x31;
putUSBUSART(data,1);
Code:
char data =0x31;
putUSBUSART(&data,1);
Se si utilizza invece un array va bene
Code:
char data[] = {0x18,0x42,0x55,0x54,0x54,0x4F,0x4E,0x3A,0x20,0x32,0x00};
putUSBUSART(data,11);
Saluti
Luca
Si prega Accesso o Crea un account a partecipare alla conversazione.
11 Anni 2 Mesi fa #4
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Trucchi e soluzioni non sempre logiche..per non impazzire!
Ottima idea.
...ne avevi parlato tempo fa e alla fine l'hai fatta!
Fammi fare mente locale.
Saluti,
Mauro
...ne avevi parlato tempo fa e alla fine l'hai fatta!

Fammi fare mente locale.

Saluti,
Mauro
Si prega Accesso o Crea un account a partecipare alla conversazione.
- StefA
-
Autore della discussione
- Moderatore
-
Less
Di più
- Messaggi: 1222
- Ringraziamenti ricevuti 104
11 Anni 2 Mesi fa #5
da StefA
..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]
Risposta da StefA al topic Trucchi e soluzioni non sempre logiche..per non impazzire!
si..l'idea era partita dal fare una sorta di pillole per MplabX.. poi ho pensato di ampliare un po' la cosa.. 
Ste

Ste
..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]
Si prega Accesso o Crea un account a partecipare alla conversazione.
Moderatori: Mauro Laurenti, StefA
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.
Forum - Ultimi messaggi
-
- Freedom III e compilazioni fallite
- da Black
-
- MODULO GSM SIM900A
- da FABRIZIO
-
- LTerminal - nuove funzioni
- da Mauro Laurenti
-
- Aggiornamento sito completato
- da Mauro Laurenti
-
- registro a scorrimento PIPO in cascata
- da Mauro Laurenti