Vai al contenuto
PLC Forum


Chiedo Info Su Programma C - non riesco a generare evento sulla portB


lelerelele

Messaggi consigliati

Buona giornata a tutti!!

ottimo forum. e molto molto interessante su vari aspetti.

mi presento, spero che sia consentito.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

nato come progettista elettronico, da 14 anni mi sono messo a trafficare con aggeggi elettrici.

penso di avere una buona conoscenza generale, su analogica e potenza, mi manca completamente l'approcio con i processori.

per lavoro non mi occupo di elettronica se non per risolvere problemi creati da che ci progetta le schede.

mi occupo di disegno tecnico, CAD meccanico 3D, modellazione 3D.

gestione completa dei miei PC al lavoro, (compresi programmi...)

programmazione VisualBasic da vari anni, alcuni programmi li uso quotidianamente al lavoro.

meccanica applicata anche sulla mia auto , (avanzata), dove i meccanici mi vedono solo per la revisione.

approposito, per il nickname, (visto che mi è già stato chiesto), è stato un momento di necessità e mi è venuto così, inoltre essendo assolutamente privo di fantasia non potevo trovare altro.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

ora passo ad esporre il mio problema, essendo nuovo nella prog. dei processori, sto cercando di capire come usarli.

in questo momento ho generato un programmino, realizzato con PCWHD compiler della CCS,

e simulato con real pic simulator della digital electro soft.

non riesco ad avere risposta degli eventi generati sulla porta B, il passo successivo sarebbe usare questi eventi per sincronizzare il PWM alla rete ed anche controllarne il duty-cycle.

qualcuno mi può dare qualche idea su possibili problemi relativi al mio programma?

perchè la simulazione non mi risponde agli eventi?

ribadisco che questo è solo un modo di capire il funzionamento, non pretendo che così com'è possa andare oltre alla didattica personale.

saluti a tutti.

Link al commento
Condividi su altri siti


Fulvio Persano+7/07/2010, 13:04--> (Fulvio Persano @ 7/07/2010, 13:04)

grazie per il link.

mi sono presentato nella sezione specifica.

Link al commento
Condividi su altri siti

  • 2 weeks later...

ho risolto il dilemma.....

il problema principale era dettato dal fatto che inviavo direttamente un segnale in uscita, per vedere se mi rispondeva l'evento, (oppure chiamiamolo interrupt), e questa operazione evidentemente non va.

ho perciò creato una variabile locale, al di fuori della routine dell'evento, e l'ho settata all'interno dell'evento, ed usata all'interno dell'evento per portare il valore in uscita sulla porta.....il tutto funziona! tongue.giftongue.gif

mi chiedo però perchè, all'interno della routine evento, portare <<output_bit(PIN_A0,1);>> non funziona, mentre <<output_bit(PIN_A0,Var);>> funziona! senzasperanza.gif

se avrò altri riscontri lo metterò a disposizione.

intanto se qualcuno ha qualche consiglio?

saluti.

Link al commento
Condividi su altri siti

  • 2 weeks later...

Ciao,

sono anche io fresco di studi sul C, quello che noto a prima vista nel codice che hai trascritto è che manca la routing o statment di richiamo all'interrupt, se non erro una volta generato l'interrupt il programma cerca una routine con la parola chiave interrupt un po' come in assembler il vettore di interruprt org 0x4.

inserisci come dichiarazione della routine una cosa del genere, cosi' poptrai anche capere quale evento ha generato l'interrupt dato che gli hai abilitati un po' tutti.

void interrupt ISR(void)
  // qui vanno le istruzioni da eseguire se l'interrupt è stato causato
{
	if (T0IF==1) // interrupt Overflow TMR0
	{
  	analogicaAN0();
	// T0IF=0; si resetta il flag dell'interrupt
	}

	if (ADIF) // interrupt della conversione analogica
	{
	// ADIF=0; si resetta il flag dell'interrupt
	}
}

Link al commento
Condividi su altri siti

Ciao Kucaio.

Se leggi il programma noterai le direttive #INT_RB e #INT_EXT che vengono usate dal compilatore c della CCS per gestire le varie sorgenti d'interruzione. La prima, per esempio, serve a dire al compilatore che la funzione che segue deve essere richiamata se portb genera un'interruzione. La gestione dei flags viene fatta automaticamente. In altri compilatori esiste una sola funzione d'interrupt e la gestione è lasciata al programmatore come nell'esempio che hai postato.

Link al commento
Condividi su altri siti

Ragazzi approfitto della vostra preparazione e del post che tratta del compilatore CCS per chiedere una cosa.

Voi come lo interfacciate con il circuito? Io sto giocando con l'ICD 3 e una evaluation board della microchip ma non riesco a farli comunicare insieme.

Qualcuno usa l'icd con il ccs c compiler?

Grazie.

Link al commento
Condividi su altri siti

Semplicemente devi scaricare dal sito CCS il plug-in per MPLAB, poi dovrai dare i path giusti in sede di progetto in ambiente MPLAB

Link al commento
Condividi su altri siti

Livio Orsini+1/08/2010, 19:37--> (Livio Orsini @ 1/08/2010, 19:37)

Grazie Livio,

il plugin l'avevo già installato.

Ma quando collega la picdem4 mi da sempre target not found...non so come andare avanti.

Link al commento
Condividi su altri siti

Non so cosa dire perchè non conosco quel prodotto. Io uso ICD + una mia scheda che supporta differenti pic e dspic.

Quando ti colleghi con MPLab il target lo vede?

Modificato: da Livio Orsini
Link al commento
Condividi su altri siti

Si con Mplab sono riuscito a farglielo vedere ora senza errori...eppure la picdem4 è prodotta dalla microchip...perché non va non si sa...

Modificato: da scalzomen
Link al commento
Condividi su altri siti

Behè ora le cose sono un poco più chiare.

Devi sempre lavorare in ambiente MPLab, nella parametrizzazione di progetto dai come compilatore la suite di CSC, fornita di relativo plug in. Quando lanci la geneazione di progetto in MPLab questi complierà con il compilatore della CSC, poi scarica l'eseguibile sul target senza problemi.

Link al commento
Condividi su altri siti

si questa è una strada a cui non avevo pensato.

ma non capisco perché con la picdem2 siamo riusciti (con un assistente all'università che ci lavora) a farlo direttamente da csc...mentre io non riesco con questa 4...

va beh giustamente tu il prodotto non lo conosci.

Ti ringrazio comunque del suggerimento.

A presto

Link al commento
Condividi su altri siti

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...