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


Rispondi
 
Strumenti discussione Visualizzazione
Vecchio 18 ottobre 10, 11:30   #41 (permalink)  Top
Rivenditore - B.C.M. Power & Tools
 
L'avatar di claudio476
 
Data registr.: 28-09-2004
Residenza: Veroli (Fr)
Messaggi: 2.722
qui un discreto librettino per capire cosa significa programmare in C18:

C18 step by step
__________________
www.quattrociocchi.it (aeromodellismo,fotografie,energie,varie ed eventuali..)
[Fusione Fredda, come spiegarla a mia nonna]

claudio476 non è collegato   Rispondi citando
Vecchio 18 ottobre 10, 11:32   #42 (permalink)  Top
User
 
Data registr.: 12-04-2006
Residenza: Mondovì
Messaggi: 103
Citazione:
Davide, che sono questi SX??
Dei "PIC Compatibili" che viaggiano a velocità mostruosa...
Ce ne sono 3 modelli e credo siano arrivati ad end of life.
Comunque una buona palestra per imparare, visto il debugger.
Li usavo per fare del superimpose su del segnale video, lavorando a 50MHz, ma possono andare fino a 100 (in realtà qualcosa di più... ma Chip me lo ha fortemente sconsigliato)
Davide B. non è collegato   Rispondi citando
Vecchio 18 ottobre 10, 21:22   #43 (permalink)  Top
User
 
L'avatar di MSchiepp
 
Data registr.: 21-01-2004
Residenza: Milano
Messaggi: 989
Citazione:
Originalmente inviato da Davide B. Visualizza messaggio
...Almeno, a me è capitato così, quando, all'epoca il buon Ricciardi (il vero guru dell'ARM in Italia) è venuto a trovarmi in ufficio.
In meno di una giornata ho capito quanto avrei potuto fare da solo in mesi da solo...
Non so se lo sai, ma Franco oltre ad essere una delle massime autorità in fatto di architetture ARM, è anche un ottimo modellista, e voliamo insieme tutti i w.e. (o quasi), ovviamente tra una discussino e l'atra su ARM, Cortex, sistemi di sviluppo,...

Michele
__________________
__________________________________________________
The worst day flying is better than the best day working.
MSchiepp non è collegato   Rispondi citando
Vecchio 18 ottobre 10, 23:18   #44 (permalink)  Top
User
 
Data registr.: 12-04-2006
Residenza: Mondovì
Messaggi: 103
Citazione:
Non so se lo sai, ma Franco oltre ad essere una delle massime autorità in fatto di architetture ARM, è anche un ottimo modellista, e voliamo insieme tutti i w.e. (o quasi), ovviamente tra una discussino e l'atra su ARM, Cortex, sistemi di sviluppo,...
Io sapevo solo che volava con l'aliante motorizzato.
Comunque, quando lo vedi, salutamelo tanto.
Davide B. non è collegato   Rispondi citando
Vecchio 21 ottobre 10, 01:16   #45 (permalink)  Top
User
 
L'avatar di elicottero78
 
Data registr.: 14-05-2005
Residenza: bergamo
Messaggi: 1.278
ciao a tutti,pian pianino mi sto leggendo il linguaggio c e contemporaneamente sto leggendo un articolo che spiega alcuni programmi x mikroc

so che ci sono mille codici che possono rendere un programma molto piccolo,ma vorrei capire dove sbaglio qua......programma fatto da me

void main() {

trisb=0b00000011 ;
portb=0;

while(1)

if (portb=0b00000001)
{portb=0b10000000 ;
}

if (portb=0b00000010)
{portb=0b01000000 ;
}

}

in pratica con un pic 16f84a con quarzo da 4 mhz
ho reso rb0 e rb1 entrate collegate a dei tasti e rb7 e rb8 uscite con dei led

io volevo premere rb0 e accendere rb8 fino al rilascio
e volevo premere rb1 e accendere rb7 fino al rilascio

ma succede che se premo rb0 o rb1 si accende solo rb8......dove sbaglio?
__________________
NUOVO DRONE TAGLIATO AL LASER CO2 https://www.youtube.com/watch?v=cBgCVNyPH5c&t=7s
GRUPPO LASER https://www.facebook.com/groups/1880460478909243/
elicottero78 non è collegato   Rispondi citando
Vecchio 21 ottobre 10, 08:28   #46 (permalink)  Top
User
 
L'avatar di MSchiepp
 
Data registr.: 21-01-2004
Residenza: Milano
Messaggi: 989
Prova a riscriverlo così:

void main() {

trisb=0b00000011 ;
portb=0;

while(1){

if (portb=0b00000001){
portb=0b10000000 ;
}

if (portb=0b00000010){
portb=0b01000000 ;
}

}

}

mancava la parentesi dopo il while che definisce il blocco di istruzioni da eseguire in loop. Con mikroc quando hai compilato puoi usare la funzione di debug che ti permette di eseguire passo passo il programma vedendo di volta in volta quali istruzioni vengono eseguite e i valori delle variabili e così puoi capire cosa succede e cosa c'è di sbagliato.

Michele
__________________
__________________________________________________
The worst day flying is better than the best day working.
MSchiepp non è collegato   Rispondi citando
Vecchio 21 ottobre 10, 10:55   #47 (permalink)  Top
User
 
Data registr.: 12-04-2006
Residenza: Mondovì
Messaggi: 103
Codice:
void main() 
{
trisb=0b00000011 ;
portb=0;
while(1)
{
if (portb=0b00000001)
{
portb=0b10000000 ;
}
if (portb=0b00000010)
{
portb=0b01000000 ;
}
}
}
A parte una serie di imprecisioni che ti lascio correggere da solo (se premi i due pulsanti insieme il secondo ti spegne il primo, se premi un pulsante e lo rilasci il codice non lo spegne), c'è un errore grave che ti segnalo.
I confronti si fanno con il ==.
L'uguale singolo (=) è una assegnazione.
Quindi correggi con
if (portb == xxxxxxx) e poi, compito per domani, correggi gli errori che ti ho segnalato.
Davide B. non è collegato   Rispondi citando
Vecchio 21 ottobre 10, 11:00   #48 (permalink)  Top
User
 
Data registr.: 12-04-2006
Residenza: Mondovì
Messaggi: 103
Citazione:
Originalmente inviato da Davide B. Visualizza messaggio
A parte una serie di imprecisioni che ti lascio correggere da solo (se premi i due pulsanti insieme il secondo ti spegne il primo, se premi un pulsante e lo rilasci il codice non lo spegne)
Rileggendo il programma il codice fa pure di peggio...
Davide B. non è collegato   Rispondi citando
Vecchio 21 ottobre 10, 11:21   #49 (permalink)  Top
User
 
Data registr.: 12-04-2006
Residenza: Mondovì
Messaggi: 103
Anche se non è il massimo...
Codice:
#define PULSANTE1 0b00000001
#define PULSANTE2 0b00000010
#define LED1      0b10000000
#define LED2      0b01000000

void main()
{
     trisb=0b00000011 ;
     portb=0;
     while(1)
     {
              // Poichè il solo bit che mi interessa vado a guardare solo
quello
              if ((portb & PULSANTE1) == PULSANTE1)
              {
                 // Questa operazione aritmetica setta il solo bit
                 // corrispondente a LED1
                 portb = portb | LED1;
              }else
              {
                 // Questa operazione resetta il solo bit
                 // corrispondente a LED2
                 portb = portb & (~LED1);
              }
              // Altro modo di vedere se il pulsante è stato premuto
              if ((portb & PULSANTE2) > 0)
              {
                 portb = portb | LED2;
              }else
              {
                 portb = portb & (~LED2);
                 // in pratica, prima inverti L2 e poi fai la AND
              }
     }
}
Davide B. non è collegato   Rispondi citando
Vecchio 21 ottobre 10, 17:38   #50 (permalink)  Top
User
 
L'avatar di elicottero78
 
Data registr.: 14-05-2005
Residenza: bergamo
Messaggi: 1.278
grazie davide b.,cavolo,è tutto l opposto di quello che ho scritto io,con mikrobasic,bastava un niente a scrivere questo programma,ma con mikroc è tutta un altra storia


mi puoi spiegare x favore questi simboli?

--if ((portb & PULSANTE1) == PULSANTE1)

--portb = portb | LED1

--portb = portb & (~LED1);

-- |

-- ~
__________________
NUOVO DRONE TAGLIATO AL LASER CO2 https://www.youtube.com/watch?v=cBgCVNyPH5c&t=7s
GRUPPO LASER https://www.facebook.com/groups/1880460478909243/
elicottero78 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 Messaggio
modificare linguaggio menù mc3030 ravenlinux2000 Radiocomandi 0 24 aprile 07 20:03
info francescospina Elimodellismo in Generale 0 26 ottobre 06 11:41
Linguaggio E Versioni Simulatore Reflex Xtr ctenos Simulatori 1 30 novembre 05 16:02



Tutti gli orari sono GMT +2. Adesso sono le 18:34.


Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2026