Programmino in C lampeggio Led

10 Anni 11 Mesi fa #1 da chip_x
Programmino in C lampeggio Led è stato creato da chip_x
Ciao,come da vero novello del C sto sperimentando i file "header" per vedere se li linka correttamente ,sembra di no.. Ovviamente mio è l'errore ma non lo vedo.
Il compilatore non mi da errori.
???

//Lampeggio Led su RD0

//definisco quarzo
#define XTAL_FREQ 20MHZ

#include <pic.h>

//impostazione porte
#include "settings.h"
#include "delay.c"

//fuses ver. HI-TECH 9.83
__CONFIG (FOSC_HS & WDTE_OFF & PWRTE_ON & BOREN_OFF & LVP_OFF & CPD_OFF & WRT_OFF & DEBUG_OFF & CP_OFF);

void main (void)
{

//ciclo
while(1)
{
//xor su led
LED=LED^1;
//pausa di 250 millisecondi
DelayMs(250);
}
} // fine ciclo

setting.h

//definisco il led su porta RD0
#define LED RD0
void settings(void)
//imposto le porte tutte uscite
{
TRISA=0b00000000;
TRISB=0b00000000;
TRISC=0b00000000;
TRISD=0b00000000;
TRISE=0b00000000;
}

Ovviamente sono inclusi delay.h e delay.c che qui ho omesso ma sono inclusi nel progetto.
Grazie
chip

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • chip_x
  • Senior Member
  • Senior Member
Di più
10 Anni 11 Mesi fa - 10 Anni 11 Mesi fa #2 da Pinna
Risposta da Pinna al topic Programmino in C lampeggio Led
Ciao chip, vedo che stai provando l'esempio di Giovanni Bernardo... credo però di avere trovato due piccoli errori (parto da presupposto che i fuses siano corretti, dato che non conosco il pic che stai utilizzando):

1) perchè nel main includi "settings.h" e poi chiami il file da includere "setting.h"? il nome deve essere identico (esempio "settings")...

2) Una volta fatto questo, lo devi lanciare dentro il main in questo modo:

void main (void)
{

settings();

//ciclo
while(1)
{
//xor su led
LED=LED^1;
//pausa di 250 millisecondi
DelayMs(250);
}
} // fine ciclo


Se non mi ricordo male dovrebbe essere così, fammi sapere...

Marcello

Chi vola vale, chi vale vola, chi non vola è un vile
Ultima Modifica 10 Anni 11 Mesi fa da Pinna.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Pinna
  • Avatar di Pinna
  • Moderator
  • Moderator
Di più
10 Anni 11 Mesi fa #3 da chip_x
Risposta da chip_x al topic Programmino in C lampeggio Led
Hai ragione,la solita svista.Sto prendendo mano con il C e sicuramente,all'inizio, faccio un po di confusione.
Ho creato il file settings come impostazione delle porte e non come una funzione,ecco perchè l'ho messa fuori. I ragionamenti delle prime armi.
Cmq, è un Pic 16F877A.

Grazie
correggo subito.
ciao
chip

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • chip_x
  • Senior Member
  • Senior Member
Di più
10 Anni 11 Mesi fa #4 da chip_x
Risposta da chip_x al topic Programmino in C lampeggio Led
Ho corretto come mi hai detto ma mi da i seguenti errori:


15.1 function declared implicit int
20.1 undefined identifier "LED"


//Lampeggio Led su RD0
// PIC 16F877A

// definisco quarzo
#define XTAL_FREQ 20MHZ

#include <pic.h>
#include "delay.c"


//fuses ver. HI-TECH 9.83
__CONFIG (FOSC_HS & WDTE_OFF & PWRTE_ON & BOREN_OFF & LVP_OFF & CPD_OFF & WRT_OFF & DEBUG_OFF & CP_OFF);

void main (void)
{
settings();
//ciclo
while(1)
{
//xor su led
LED=LED^1;
//pausa di 250 millisecondi
DelayMs(250);
}
} // fine ciclo

#define LED RD0

void settings(void)

// imposto le porte tutte uscite
{
TRISA=0b00000000;
TRISB=0b00000000;
TRISC=0b00000000;
TRISD=0b00000000;
TRISE=0b00000000;
}

Ciao

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • chip_x
  • Senior Member
  • Senior Member
Di più
10 Anni 11 Mesi fa #5 da Pinna
Risposta da Pinna al topic Programmino in C lampeggio Led
modifica la parte degli include così:

#include <pic.h>
#include "settings.h"
#include "delay.c"

fammi sapere

Marcello

Chi vola vale, chi vale vola, chi non vola è un vile

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Pinna
  • Avatar di Pinna
  • Moderator
  • Moderator
Di più
Moderatori: Mauro LaurentiPinnaStefAMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login