Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

PIC12F683, errori compilazione su end main

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[21] Re: PIC12F683, errori compilazione su end main

Messaggioda Foto Utenteangelorosso » 25 set 2011, 20:43

Vi ringrazio perché mi seguite nei ragionamento senza perdere la pazienza :mrgreen:
Come dicevo su la mia conoscenza del C è a livello scolastico, vale a dire usare printf e scanf per scrivere e visualizzare poche parole.
L'introduzione di funzioni, la loro struttura e tutto il resto sono argomenti a me nuovi e capisco che non è questo il posto adatto per apprenderli...ma (e mi riferisco a Paolino) non penso che esercitandomi dalle cose basilari riesca ad evolvermi se prima non comprendo le funzioni via via più complicate e soprattutto come si usano.
Prometto che a breve acquisterò e studierò il volume "Pillole di... Microcontrollori PIC" al fine di apprendere pian piano il mondo dei PIC con visione più completa rispetto a quel minimo che conosco adesso :D

Il fine di questo mio topic era quello di ricercare un aiuto su come sviluppare le righe di codice per il mio scopo, ma visto che mi invitate a scrivere qualcosa che sconosco è meglio lasciar perdere! Prima devo conoscere gli strumenti, poi eventualmente chiederò aiuto su come usarli.

grazie :ok:
Avatar utente
Foto Utenteangelorosso
40 3
New entry
New entry
 
Messaggi: 61
Iscritto il: 17 lug 2011, 22:36

0
voti

[22] Re: PIC12F683, errori compilazione su end main

Messaggioda Foto UtenteTardoFreak » 25 set 2011, 21:26

Ti suggerisco, oltre al libro da te menzionato che è ottimo, "Guida al linguaggio C" di Bellini e Guidi ed Mc Graw Hill o il "C Manuale di programmazione" di Darnell e Margolis stessa casa editrice.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,4k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15764
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[23] Re: PIC12F683, errori compilazione su end main

Messaggioda Foto Utenteangelorosso » 26 set 2011, 11:50

Grazie, ho appuntato tutto...appena possibile cercherò in libreria O_/
Avatar utente
Foto Utenteangelorosso
40 3
New entry
New entry
 
Messaggi: 61
Iscritto il: 17 lug 2011, 22:36

0
voti

[24] Re: PIC12F683, errori compilazione su end main

Messaggioda Foto Utenteangelorosso » 21 ott 2011, 18:50

Rieccomi qui con le mie domande :mrgreen:

Mi sono documentato meglio sulla programmazione e sull'uso delle funzioni, ho scritto e compilato correttamente il seguente codice

Codice: Seleziona tutto
#include <htc.h>
#include "delay.c"

// Fuses di configurazione
__CONFIG (PWRTEN & UNPROTECT)





int   INCH,   GP0;         // segnale di ingresso chiusura su GP0
int INAP,   GP1;          // segnale di ingresso apertura su GP1
int OUT1,   GP5;      // segnale di uscita 1 su GP5
int   OUT2,   GP4;         // segnale di uscita 2 su GP4
int   OUT3,   GP2;         // segnale di uscita temporizzato (antipozzanghera)
int i=0;               // variabile per conteggio delay


//prototipi di funzioni
int controllo_chiusura (int);
int controllo_apertura (int);



int main (int)  //inizio programma
    {
     
     TRISIO =0b00000111;
    GPIO   =0b00000000;


   while (1)
       {
         
                if (INCH)
                   { int controllo_chiusura (int);  }
                                 
                                  
                                     
               else if (INAP)
                      { int controllo_apertura (int); }
                                  
                                    
                                       
                                       }   // endwhile
   return 0;                                       }   // endmain





   
int controllo_chiusura (int)

{   

   { DelayMs(100); }                            // ritardo per antirimbalzo
      if (INCH)                               // se non si tratta di un rimbalzo
         { for (i=12;i!=0;i--)                  //parte il conteggio dei 3 secondi (12 tranche da 250 ms)
            DelayMs(250);
            if (INCH)                         //se durante i 3 sec. arriva un secondo impulso
               {   
                  OUT1 = 1;                  //abilito OUT1
                  for (i=16;i!=0;i--)            // parte il conteggio dei 4 secondi (16 tranche da 250 ms)
                  DelayMs(250);
                  OUT1=0;   }                  //disabilito OUT1
                           }
                              }


int controllo_apertura (int)

{   

   { DelayMs(100); }                            // ritardo per antirimbalzo
      if (INAP)                               // se non si tratta di un rimbalzo
         { for (i=12;i!=0;i--)                  //parte il conteggio dei 3 secondi (12 tranche da 250 ms)
            DelayMs(250);
            if (INAP)                         //se durante i 3 sec. arriva un secondo impulso
               {   
                  OUT1 = 1;                  //attivo le 3 uscite
                  OUT2 = 1;
                  OUT3 = 1;                  
                  for (i=16;i!=0;i--)            // parte il conteggio dei 4 secondi (16 tranche da 250 ms)
                  DelayMs(250);
                  OUT1=0;                     // disattivo le prime due uscite
                  OUT2=0;
                  for (i=24;i!=0;i--)            // parte il conteggio di ulteriori 6 secondi (24 tranche da 250 ms)
                  DelayMs(250);
                  OUT3=0;}                  //disabilito OUT3
                           }
                              }


Utilizzando MPLAB SIM il programma viene eseguito e si blocca a causa del WatchDog Timer, la mia domanda è: essendoci un loop infinito è normale che abbia quest'errore?
Magari sull'applicazione pratica il PIC , una volta ricevuto l'ALT dal WDT, si resetta e riprende a funzionare correttamente :D

Fateme sapè O_/
Avatar utente
Foto Utenteangelorosso
40 3
New entry
New entry
 
Messaggi: 61
Iscritto il: 17 lug 2011, 22:36

Precedente

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti