Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Super Car 8 LED

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] Super Car 8 LED

Messaggioda Foto UtenteCseven » 6 giu 2014, 19:39

Salve ,

di seguito vi posto il codice sorgente di un programma in C fatto dalla Microchip sui suoi esempi e ve lo riporto qui per chiedere, perché MPLAB X IDE v2.10 mi da il seguente errore:

(908) exit status = 1
make[2]: *** [build/default/production/super_car.p1] Error 1
super_car.c:34: warning: (374) missing basic type; int assumed
super_car.c:34: error: (314) ";" expected
super_car.c:56: error: (312) ";" expected
make[2]: Leaving directory `D:/ecc..
make[1]: Leaving directory `D:/ecc..
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2

BUILD FAILED (exit value 2, total time: 1s)


Codice: Seleziona tutto
/** C O N F I G U R A T I O N   B I T S ******************************/

#pragma config FOSC = INTIO67, FCMEN = OFF, IESO = OFF                       // CONFIG1H
#pragma config PWRT = OFF, BOREN = SBORDIS, BORV = 30                        // CONFIG2L
#pragma config WDTEN = OFF, WDTPS = 32768                                     // CONFIG2H
#pragma config MCLRE = OFF, LPT1OSC = OFF, PBADEN = ON, CCP2MX = PORTC       // CONFIG3H
#pragma config STVREN = ON, LVP = OFF, XINST = OFF                          // CONFIG4L
#pragma config CP0 = OFF, CP1 = OFF, CP2 = OFF, CP3 = OFF                   // CONFIG5L
#pragma config CPB = OFF, CPD = OFF                                         // CONFIG5H
#pragma config WRT0 = OFF, WRT1 = OFF, WRT2 = OFF, WRT3 = OFF               // CONFIG6L
#pragma config WRTB = OFF, WRTC = OFF, WRTD = OFF                           // CONFIG6H
#pragma config EBTR0 = OFF, EBTR1 = OFF, EBTR2 = OFF, EBTR3 = OFF           // CONFIG7L
#pragma config EBTRB = OFF                                                  // CONFIG7H


/** I N C L U D E S **************************************************/
#include "p18f46k20.h"
#include "delays.h"

/** V A R I A B L E S *************************************************/
#pragma udata // declare statically allocated uninitialized variables
unsigned char LED_Number;  // 8-bit variable

/** D E C L A R A T I O N S *******************************************/
// declare constant data in program memory starting at address 0x180
#pragma romdata Lesson3_Table = 0x180
const rom unsigned char LED_LookupTable[8] = {0x01, 0x02, 0x04, 0x08,
                                     0x10, 0x20, 0x40, 0x80};

#pragma code    // declare executable instructions

void main (void)
{
    LED_Number = 0;            // initialize

    TRISD = 0b00000000;        // PORTD bits 7:0 are all outputs (0)

    while (1)
    {
      // use lookup table to output one LED on based on LED_Number value
        LATD = LED_LookupTable[LED_Number];   

        LED_Number++;      // rotate display by 1

        if (LED_Number == 8)
            LED_Number = 0;    // go back to LED 0.

        Delay1KTCYx(50);       // Delay 50 x 1000 = 50,000 cycles; 200ms @ 1MHz
    }   
}


L'HEX file, una volta caricato nel PIC18F45K20 tramite Pickit3 , funziona regolarmente. Mentre se provo a farlo io e a compilarlo , mi da gli errori di prima....sapete aiutarmi?

Grazie mille.
Avatar utente
Foto UtenteCseven
25 3 6
Frequentatore
Frequentatore
 
Messaggi: 284
Iscritto il: 25 apr 2009, 18:27
Località: Tv

0
voti

[2] Re: Super Car 8 LED

Messaggioda Foto Utenteposta10100 » 6 giu 2014, 19:56

Non uso MPLAB però prova a commentare questa riga:

Codice: Seleziona tutto
#pragma code    // declare executable instructions


Secondo me al posto di "declare ..." manca qualcosa.
Però posso sbagliarmi, MPLAB l'ho usato un paio di volte, non mi è piaciuto e l'ho mollato.

O_/
http://millefori.altervista.org
Tool gratuito per chi sviluppa su millefori.

Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (A. Einstein)
Se non c'e` un 555 non e` un buon progetto (IsidoroKZ)

Strumento per formule
Avatar utente
Foto Utenteposta10100
5.550 4 10 13
Master EY
Master EY
 
Messaggi: 4832
Iscritto il: 5 nov 2006, 0:09

0
voti

[3] Re: Super Car 8 LED

Messaggioda Foto UtenteCseven » 6 giu 2014, 20:38

Puoi per piacere provare a compilare il programma e vedere se a te funziona?
Avatar utente
Foto UtenteCseven
25 3 6
Frequentatore
Frequentatore
 
Messaggi: 284
Iscritto il: 25 apr 2009, 18:27
Località: Tv

0
voti

[4] Re: Super Car 8 LED

Messaggioda Foto Utenteposta10100 » 6 giu 2014, 20:58

Non ho il sw installato, dammi il tempo di scaricarlo e di ricordarmi come si usa :mrgreen:

Hai installato librerie particolari o hai fatto l'installazione di default?

O_/
http://millefori.altervista.org
Tool gratuito per chi sviluppa su millefori.

Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (A. Einstein)
Se non c'e` un 555 non e` un buon progetto (IsidoroKZ)

Strumento per formule
Avatar utente
Foto Utenteposta10100
5.550 4 10 13
Master EY
Master EY
 
Messaggi: 4832
Iscritto il: 5 nov 2006, 0:09

0
voti

[5] Re: Super Car 8 LED

Messaggioda Foto UtenteCseven » 6 giu 2014, 21:01

Dicevo, se lo avresti fatto con il software che utilizzi tu.

Comunque Mplab, l'ho installato normalmente, tutto default, niente di aggiunto .

Crei il progetto, dopodiché aggiungi un file.c alla cartella Source files che trovi nel software. Questo se vuoi fare la prova con lui.

Non so dove sbattere la testa, e prima di andare avanti stavo cercando di capire come lo ha fatto questo .
Avatar utente
Foto UtenteCseven
25 3 6
Frequentatore
Frequentatore
 
Messaggi: 284
Iscritto il: 25 apr 2009, 18:27
Località: Tv

0
voti

[6] Re: Super Car 8 LED

Messaggioda Foto Utenteposta10100 » 6 giu 2014, 21:07

Cseven ha scritto:Dicevo, se lo avresti fatto con il software che utilizzi tu.

OK, butto tutto e uso Piklab! :mrgreen:
http://millefori.altervista.org
Tool gratuito per chi sviluppa su millefori.

Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (A. Einstein)
Se non c'e` un 555 non e` un buon progetto (IsidoroKZ)

Strumento per formule
Avatar utente
Foto Utenteposta10100
5.550 4 10 13
Master EY
Master EY
 
Messaggi: 4832
Iscritto il: 5 nov 2006, 0:09

0
voti

[7] Re: Super Car 8 LED

Messaggioda Foto UtenteCseven » 6 giu 2014, 21:13

Ti ringrazio :)

Anche io volevo usare Piklab, ma avevo paura, per modo di dire, nel poterlo usare con il pickit3 . Ma da quello che ho capito finora non c'è grande differenza tra pickit3 e il 2 .

Aspetto una tua risposta. Vediamo se da te parte. Se riesci a compilarlo, butto tutto e passo anche io a Piklab :)
Avatar utente
Foto UtenteCseven
25 3 6
Frequentatore
Frequentatore
 
Messaggi: 284
Iscritto il: 25 apr 2009, 18:27
Località: Tv

0
voti

[8] Re: Super Car 8 LED

Messaggioda Foto Utenteposta10100 » 6 giu 2014, 21:26

Devo riadattare un po il codice, appena stacco il saldatore lo sistemo e te lo passo.

A dopo!
http://millefori.altervista.org
Tool gratuito per chi sviluppa su millefori.

Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (A. Einstein)
Se non c'e` un 555 non e` un buon progetto (IsidoroKZ)

Strumento per formule
Avatar utente
Foto Utenteposta10100
5.550 4 10 13
Master EY
Master EY
 
Messaggi: 4832
Iscritto il: 5 nov 2006, 0:09

0
voti

[9] Re: Super Car 8 LED

Messaggioda Foto UtenteCseven » 6 giu 2014, 21:32

Grazie mille :) finalmente potrò capirci qualcosa :)
Avatar utente
Foto UtenteCseven
25 3 6
Frequentatore
Frequentatore
 
Messaggi: 284
Iscritto il: 25 apr 2009, 18:27
Località: Tv

1
voti

[10] Re: Super Car 8 LED

Messaggioda Foto Utenteposta10100 » 6 giu 2014, 22:49

Ecco il codice riadattato.
Per poterlo compilare, oltre a Piklab devi avere anche sdcc.
Codice: Seleziona tutto
    /** I N C L U D E S **************************************************/
    #include "pic18f46k20.h"
   
    /** C O N F I G U R A T I O N   B I T S ******************************/

    //#pragma config FOSC = INTIO67, FCMEN = OFF, IESO = OFF                       // CONFIG1H
    __code char __at __CONFIG1H CONFIG1H = _OSC_INTIO67_1H & _FCMEN_OFF_1H & _IESO_OFF_1H;
    //#pragma config PWRT = OFF, BOREN = SBORDIS, BORV = 30                        // CONFIG2L
    __code char __at __CONFIG2L CONFIG2L = _PWRT_OFF_2L & _BOREN_SBORDIS_2L & _BORV_46_2L;
    //#pragma config WDTEN = OFF, WDTPS = 32768                                     // CONFIG2H
   __code char __at __CONFIG2H CONFIG2H = _WDT_OFF_2H & _WDTPS_32768_2H;
    //#pragma config MCLRE = OFF, LPT1OSC = OFF, PBADEN = ON, CCP2MX = PORTC       // CONFIG3H
   __code char __at __CONFIG3H CONFIG3H = _MCLRE_OFF_3H & _LPT1OSC_OFF_3H & _PBADEN_ON_3H & _CCP2MX_PORTC_3H;
    //#pragma config STVREN = ON, LVP = OFF, XINST = OFF                          // CONFIG4L
   __code char __at __CONFIG4L CONFIG4L = _STVREN_ON_4L & _LVP_OFF_4L & _XINST_OFF_4L;
    //#pragma config CP0 = OFF, CP1 = OFF, CP2 = OFF, CP3 = OFF                   // CONFIG5L
   __code char __at __CONFIG5L CONFIG5L = _CP0_OFF_5L & _CP1_OFF_5L & _CP2_OFF_5L & _CP3_OFF_5L;
    //#pragma config CPB = OFF, CPD = OFF                                         // CONFIG5H
   __code char __at __CONFIG5H CONFIG5H = _CPB_OFF_5H & _CPD_OFF_5H;
    //#pragma config WRT0 = OFF, WRT1 = OFF, WRT2 = OFF, WRT3 = OFF               // CONFIG6L
   __code char __at __CONFIG6L CONFIG6L = _WRT0_OFF_6L & _WRT1_OFF_6L & _WRT2_OFF_6L & _WRT3_OFF_6L;
    //#pragma config WRTB = OFF, WRTC = OFF, WRTD = OFF                           // CONFIG6H
   __code char __at __CONFIG6H CONFIG6H = _WRTB_OFF_6H & _WRTC_OFF_6H & _WRTD_OFF_6H;
    //#pragma config EBTR0 = OFF, EBTR1 = OFF, EBTR2 = OFF, EBTR3 = OFF           // CONFIG7L
   __code char __at __CONFIG7L CONFIG7L = _EBTR0_OFF_7L & _EBTR1_OFF_7L & _EBTR2_OFF_7L & _EBTR3_OFF_7L;
    //#pragma config EBTRB = OFF                                                  // CONFIG7H
   __code char __at __CONFIG7H CONFIG7H = _EBTRB_OFF_7H;



    /** V A R I A B L E S *************************************************/
    #pragma udata // declare statically allocated uninitialized variables
    unsigned char LED_Number;  // 8-bit variable

    /** D E C L A R A T I O N S *******************************************/
    // declare constant data in program memory starting at address 0x180
    #pragma romdata Lesson3_Table = 0x180
    const unsigned char LED_LookupTable[8] = {0x01, 0x02, 0x04, 0x08,
                                         0x10, 0x20, 0x40, 0x80};

    //#pragma code    // declare executable instructions
   unsigned char d1, d2;

   void delay() {
     __asm
      ; Delay = 0.2 seconds
      ; Clock frequency = 1 MHz

      ; Actual delay = 0.2 seconds = 50000 cycles
      ; Error = 0 %

   Delay:
         ;49993 cycles
      movlw   0x0E
      movwf   _d1
      movlw   0x28
      movwf   _d2
   Delay_0:
      decfsz   _d1, f
      goto   $+2
      decfsz   _d2, f
      goto   Delay_0

         ;3 cycles
      goto   $+1
      nop

         ;4 cycles (including call)
     __endasm;
   }
                              
    void main (void)
    {
        LED_Number = 0;            // initialize

        TRISD = 0b00000000;        // PORTD bits 7:0 are all outputs (0)

        while (1)
        {
          // use lookup table to output one LED on based on LED_Number value
            LATD = LED_LookupTable[LED_Number];   

            LED_Number++;      // rotate display by 1

            if (LED_Number == 8)
                LED_Number = 0;    // go back to LED 0.

            //Delay1KTCYx(50);       // Delay 50 x 1000 = 50,000 cycles; 200ms @ 1MHz
            delay();
        }   
    }


La routine di delay è stata ottenuta riadattando il codice generato con questo calcolatore.

Se hai difficoltà a configurare SDCC dimmelo che ti do una mano.

Su che OS lavori?

O_/
http://millefori.altervista.org
Tool gratuito per chi sviluppa su millefori.

Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (A. Einstein)
Se non c'e` un 555 non e` un buon progetto (IsidoroKZ)

Strumento per formule
Avatar utente
Foto Utenteposta10100
5.550 4 10 13
Master EY
Master EY
 
Messaggi: 4832
Iscritto il: 5 nov 2006, 0:09

Prossimo

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti