Paolascio Inserito: 1 novembre 2004 Segnala Inserito: 1 novembre 2004 Salve a tutti.Dopo aver programmato il pic con un programma che utilizza un array di float, il compilatore PICC da il seguente messaggio:Error[000] : Can't find 0x131 words for psect rbss_0 in segment BANK0Error[000] : Can't find 0x9 words for psect temp in segment COMBANKL'errore è dovuto al fatto che vado a saturare la memoria disponibile sul banco 0.Poichè ci sono + banchi, qualcuno saprebbe come è possibile accedere alla memoria di un altro banco?Premetto che utilizzo il PICC e programmo in C.Grazie a tuttiPaolo
stefano_ Inserita: 17 novembre 2004 Segnala Inserita: 17 novembre 2004 ciao, purtroppo non so rispondere al tuo problema,visto però che anchio programmo i PIC in C ( sto iniziando almeno ) provo a leggere i tutorial che ho, se trovo qualcosa che fa al tuo caso ti faccio sapere OK?ci sentiamo.
Massimo Maggi Inserita: 17 novembre 2004 Segnala Inserita: 17 novembre 2004 (modificato) Ciao,per mettere una variabile in un altro banco, con il compilatore PICC devi inserire prima del tipo di dati della variabile la parola chiave bank+numbanco (per esempio: bank1 char variab = 0; bank0 int num; ecc).Ricorda che cambiare il banco attivo consuma cicli di clock, quindi non mettere "a caso" le variabili nei vari banchi, ma distribuiscile evitando di dover cambiare continuamente il banco attivo nelle varie funzioni.Un sito molto interessante per programmare i PIC con il linguaggio C è www.microchipc.com.Massimo Maggi Modificato: 17 novembre 2004 da Massimo Maggi
stefano_ Inserita: 17 novembre 2004 Segnala Inserita: 17 novembre 2004 grazie per i tuoi suggerimenti sono vero e proprio oro colato, è da un pò di tempo che smanetto con i PIC ed il C ma di tutorial in italiano se ne trovano vermente pochi e trovare qualcuno che ne sappia qualcosa è come trovre un mosca bianca !!!!!!!!!!A proposito il sito lo avevo gia visto, moooolto interessante solamente che principalmente avrei bisnogno di tut in italiano per poter partire, non so tu ma io sto proprio all'inizio...nonostante cio sono riuscito a fare qualche semplice programmino !?!?!?!Se per caso sai qualche sito interessante fammi sapere OK ? se ti può interessare io ho iniziato con questo http://www.jofi.it/fiser/ciao e grazie ancora !!
Massimo Maggi Inserita: 17 novembre 2004 Segnala Inserita: 17 novembre 2004 Ciao,il tutorial di Fiser è l'unico che conosco in cui si programma in C. C'è anche quello di Tanzilli, ma usa l'assembler [comunque ti fa capire meglio come funziona il PIC, e come diventerà il tuo codice C(il quale viene poi convertito in assembler durante la compilazione, se non ci credi puoi vedere tale codice attraverso l'opzione "Generate assembly list file" di MPLAB o -asmlist di picc) ].Anch'io non ho trovato tutorial del linguaggio C applicato ai PIC in italiano. Se non conosci bene il C, potresti cercare di impararlo attraverso i tutorial per la programmazione dei PC (si, PC non PIC). La sintassi di base è la stessa. Usa google per trovarli, dovrebbero essercene tanti. Unendo ciò che impari dal tutorial di Tanzilli per l'assembler dei PIC e un corso generico di C, dovresti capire molte cose.Ti voglio segnalare un link che reputo molto interessante, anche se è in inglese (spero che almeno un po lo capisci..).http://www.interq.or.jp/japan/se-inoue/e_pic.htmCiaoMassimo
stefano_ Inserita: 20 novembre 2004 Segnala Inserita: 20 novembre 2004 ciao, eccomi di nuovo a darvi fastidio......il problema stavolta è che dovrei verificare lo stato di un solo bit della portA e con picclitenon so proprio come si fa !!!!!adesso per esempio scrivo if (portA= 0b00001); ecc..... così pero verifico lo stato di tutta la portAio invece vorrei sapere se ra4 per esempio vale 1 oppure nocome si deve scrivere in C (picclite) ????grazie 1000 a tutti
Livio Orsini Inserita: 20 novembre 2004 Segnala Inserita: 20 novembre 2004 adesso per esempio scrivo if (portA= 0b00001); ecc..... così pero verifico lo stato di tutta la portA.....
stefano_ Inserita: 20 novembre 2004 Segnala Inserita: 20 novembre 2004 per Livio Orsini:ho provato come hai detto tu ma da sempre errore, ecco il codiceif (PORTA AND 0b10000) { giocatore1=giocatore1+1; appoggio = 1;}l'errore è "expression syntax"ho provato in minuscolo ma non cambia nulla in pratica vorrei che ogni volta che RA4 vale 1 la variabile da me dichiarata incrementassenon posso utilizzare if (PORTA == 0b10000) perche non sono sicuro che RA0 RA1 Ra2 ed RA3stanno a zero oppure ad 1 per questo volevo verificare solo il bit corrispondente ad RA4Dove sbaglio !!!!!!!!!Grazie 1000 anticipatamente e scusami del tempo che ti faccio perdere.ciao ciao
Livio Orsini Inserita: 20 novembre 2004 Segnala Inserita: 20 novembre 2004 (modificato) Benedetto Stefano la mia era un'indicazione di principio, in altri termini ti indicavo il modo di fare il test, la sintassi te la devi mettere in linea con il tuo compilatore e con le regole del "C". IL simbolo dell'operatore AND, orientato al bit, per il "C" è "&" da non confondersi con il prefisso del puntatore che è il medesimo.Un buon consiglio: prima di metterti a smanettare studiati almeno i fondamentali del linguaggio che vuoi usare. Modificato: 20 novembre 2004 da Livio Orsini
stefano_ Inserita: 20 novembre 2004 Segnala Inserita: 20 novembre 2004 scusa ma la voglia di fare qualcosa di concreto è più forte di me comunque sto leggendo vari tut ma l'unico sul pic e c++ in italiano è quello di trikycgrazie 1000
Livio Orsini Inserita: 20 novembre 2004 Segnala Inserita: 20 novembre 2004 Comprati un testo di "C" non "C++", magari "Linguaggio C" di Kernighan e Ritchie (edizioni Jackson) è in Italiano ed è il vangelo del "C"
ifachsoftware Inserita: 21 novembre 2004 Segnala Inserita: 21 novembre 2004 Perlomeno dai un'occhiata all'. in linea del tuo compilatore...Per il fatto dell'area di memoria , il compilatore C dovrebbe gestirla lui automaticamente , quindi se di da' memoria esaurita o devi cambiare PIC o devi farti da solo (se possibile) una gestione piu' oculata indirizzando delle locazioni assolute in cui mettere i tuoi dati , ma visto le tue conoscenze ti consiglio per ora di dedicarti allo studio del linguaggio standard.Ciao
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