Vai al contenuto
PLC Forum


Sto Usando Il Pic Con 18F458 Per La Prima Volta


Lucia1765

Messaggi consigliati

Salve a tutti, mi trovo a dover sperimentare il linguaggio C con il programma di cui in oggetto. Ora mi si chiede di usare il do while per dire che c'è un rapporto tra un switch e un led, se il pulsante è premuto il led si accende oppure no, procedo in questa maniera, creo una cartella progetto, metto a prototip il nome della cartella, in due file dove c'è prototip e poi apro il programma e trovo:

#include <system.h>

#include <na_lcd4x20D2Free.c>

#include <string.h>

#include <na_RS232VT.c>	 //Libreria ricezione seriale RS232


void main() {

//  qui scrivo:




[color=#333333]{[/color]

[color=#333333]int 8, STATO PULSANTE[/color]

[color=#333333]OUTPUT_LOW (PIC_C0); // LED OFF;[/color]

[color=#333333]DO {[/color]

[color=#333333]STATO PULSANTE == INPUT (pin b0);[/color]

[color=#333333]}[/color]

[color=#333333]WHILE (STATO PULSANTE);[/color]

[color=#333333]OUTPUT_ HIGH (PIN _C0); // led on[/color]

[color=#333333]} WHILE (1);[/color]




[color=#333333]poi segue:[/color]



// ================================================================ System Setup

  setup_timer_3(T3_DISABLED | T3_DIV_BY_1);

//  setup_low_volt_detect(FALSE);

  clear_interrupt(INT_RDA);

  enable_interrupts(INT_RDA);

  enable_interrupts(GLOBAL);

  lcd_init();							 //Init display LCD

  delay_ms(10);						   //Delay 10 ms

// ============================================================ System Setup end

// =============================== TODO USER CODE ==============================





}

non mi viene la compilazione, in cosa sbaglio? Grazie di qualunque aiuto che possiate darmi.

Link al commento
Condividi su altri siti


Ma che cosa significa "non mi viene la compilazione"?

Che messaggi di errore ti da?

Io non conosco l'argomento 18F458 quindi dirò sicuramente delle baggianate però, guardando il codice che hai postato vedo che nella dichiarazione delle variabili manca il punto e virgola finale.

Inoltre hai dichiarato una variabile 8 che normalmente non viene accettata nei compilatori C standard (i nomi delle variabili non possono iniziare con un numero) ma potrebbero essere errori di battitura..

Prova a fare un copia/incolla del tuo codice usando gli appositi tag codice "<" e ">" e ripostalo, magari ci si capisce di più...

Ciao

Modificato: da lucios
Link al commento
Condividi su altri siti

Purtroppo gli errori sono diversi, come cambio qualche cosa mi dà sempre errore, ad iniziare dal numero 8 in cima, forse sbaglio le parentesi, gli spazi tra le parole, i punti e virgola, mi spiace ma non me n'intendo ancora molto. Grazie comunque

Link al commento
Condividi su altri siti

Lucios ti ha già spiegato perchè l'8 non va bene.

Se riesci prova a copiare in un file tutta la lista degli errori che ti vengono segnalati

poi lo alleghi a un messaggio così chi legge riesce ad avere un quadro più chiaro

Mio consiglio controlla i primi errori perchè quando il compilatore "perde il filo" segnala di tutto e di più

Altro consiglio prova a compilare un esempio già pronto così fai pratica con tutto quello che non riguarda il li nguaggio C.

e non preoccuparti è la strada che facciamo tutti quando abbiamo ambiente sviluppo nuovo, compilatore e linguagigo da imparare

Link al commento
Condividi su altri siti

A parte tutti quei color tra parentesi quadre che sembrano dovuti a una copia errata del codice nel post, ti direi di cominciare come ti ho già detto in precedenza e cioè:

cambia il nome della variabile 8 (non ammessa in C) e aggiungi un punto e virgola ala fine della riga.

Poi fai quello che ti ha consigliato accacca, posta la lista degli errori del compilatore.

Link al commento
Condividi su altri siti

Sto seguendo un corso di programmazione PIC e da quel poco che so mi sembra che tutti i vari COLOR tra parentesi siano sbagliati come sintassi.

Alla fine dovrebbero andarci i ; punto e virgola.

Controlla che le parentesi vengano a perte e chiuse e controlla gli include.

Link al commento
Condividi su altri siti

Anche la variabile STATO PULSANTE non è corretta. Non puoi definire un nome con degli spazi in mezzo...

Anche questo ciclo è errato:


DO {

STATO PULSANTE == INPUT (pin b0);

}

Hai messo un == ,che è un'istruzione di comparazione, in un assegnamento.

Ti consiglio di andare in libreria e di acquistare "Linguaggio C" di Kernighan & Ritchie (se si trova ancora), di studiarti le nozioni basiche del C e di provare con qualche programmino semplice prima di avventurarti nei PIC.

Ciao

Link al commento
Condividi su altri siti

Prima di tutto manca un dato essenziale: quale compilatore stai usando?

Perchè in funzione del compilatore usato ci sono "built in functions" differenti e leggere variazioni di scrittura.

Link al commento
Condividi su altri siti

Perchè in funzione del compilatore usato ci sono "built in functions" differenti e leggere variazioni di scrittura.

Vero, però quì siamo in presenza di errori grossolani che nessun compilatore C digerirebbe...

Ciao

Link al commento
Condividi su altri siti

Vero, però quì siamo in presenza di errori grossolani che nessun compilatore C digerirebbe..

Questo è evidente. :lol:

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...