function in mikroc

General discussion on mikroC.
Post Reply
Author
Message
Velimir
Posts: 15
Joined: 02 Jun 2010 07:24

function in mikroc

#1 Post by Velimir » 03 Oct 2010 02:17

Hello,

My problem Mmc_Fat_Append () function.
When I put this function in my program PIC mikrocontroler does not work.
I'm interested in what happens?

Tnx in advance...

Sobrietytest
Posts: 619
Joined: 05 Jul 2008 06:05
Location: Thailand

Re: function in mikroc

#2 Post by Sobrietytest » 03 Oct 2010 09:42

Hi Velimir, this could happen for many reasons, can you post your code along with PIC details, clock speed, etc?

Velimir
Posts: 15
Joined: 02 Jun 2010 07:24

Re: function in mikroc

#3 Post by Velimir » 06 Oct 2010 19:35

Hi, first thank you for your repay.
I have send my program code.

Code: Select all

   #include <built_in.h>



[color=#00BF40] //------------INICIJALIZACIJA PROMENLJIVIH--------------------;

unsigned short mmc_errort,brojac_ivica=10;
unsigned short loop,loop2,brzina;

char file_content_n[512],databuffer[512];
char file_content_s[9];
char file_content_b[11];
char Ime_strujnog_Fajla[10];
char Ime_Fajla_Za_Brzinu[10];
char Ime_Naponskog_Fajla[10] ;
unsigned long tlong,Upisana_Brzina ;
char ch;
unsigned long Mereni_Napon;
signed long Merena_Struja,Izmerena_Brzina;
unsigned long sector=0,brupisa=0;
  unsigned brojac=0,pokazivac=0;

 Kreiranje_Fajla_Napon() {
 Ime_Naponskog_Fajla[0] = 'N';
 Ime_Naponskog_Fajla[1] = 'A';
 Ime_Naponskog_Fajla[2] = 'P';
 Ime_Naponskog_Fajla[3] = 'A';
 Ime_Naponskog_Fajla[4] = 'N';
 Ime_Naponskog_Fajla[5] = 'T';
 Ime_Naponskog_Fajla[6] = 'X';
 Ime_Naponskog_Fajla[7] = 'T';
 Mmc_Fat_Assign(&Ime_Naponskog_Fajla,0xA0);

         file_content_n[brojac]=54;
         file_content_n[brojac+1]=55;
         file_content_n[brojac+2]=32;
         file_content_n[brojac+3]=51;
         file_content_n[brojac+4]=50;
         file_content_n[brojac+5]=53;
         file_content_n[brojac+6]=32;
         file_content_n[brojac+7]=32;
          brojac=brojac+8;


       pokazivac++;
       if(pokazivac==54){
   [u]Mmc_Fat_Append();[/u]
  Mmc_Fat_Write(file_content_n,512);           // UPIS PODATAKA U POSTOJE?I FAJL ;
      pokazivac=0;
     brojac=0;
  }


}


//---------- PREKIDNA RUTINA-------------



 //---- MAIN-----
void main() {
  //---- PODEŠAVANJE REGISTARA-----
  TRISA = 0xFF;             // PORTA ULAZNI
  TRISB = 0x00;             // PORTB IZLAZNI
  TRISC = 0x173;            // RC7,RC3 I RC2 SU IZLAZNI
  PORTB = 0xF0;             // RB7, RB6, RB5, RB4 = 1
  TMR0L = 96;               // PO?RTNA VREDNOST TAJMERA
  INTCON = 0xA0;            // DOZVOLA PREKIDA, DOZVOLA PREKIDA NA TAJMERU 0
  INTCON2 = 0x84;           // PREKIDI BEZ PRIORITETE

  ADCON1 = 0x80;            // PODEŠAVANJE AN PINOVA KAO ANALOGNI
  CMCON  |= 7;              // ISKLJU?IVANJE KOMPARATORA
  Delay_100ms();            // PAUZA 100 mS
  T0CON = 0xC4;             // PODEŠAVANJE TAJMERA
  CCP1CON = 0x05;           // UKLJU?IVANJE CAPTURE MODA NA PINU RC2

  PIE1 = 0x04;              // DOZVOLA PREKIDA NA PINU RC2 NA RASTU?U IVICU SIGNALA
  PIR1 = 0x00;              // ISPITIVANJE PREKIDA


   brojac=0;


  // SPI INICIJALIZACIJA

  Spi_Init_Advanced(MASTER_OSC_DIV64, DATA_SAMPLE_MIDDLE, CLK_IDLE_HIGH, LOW_2_HIGH);

  // MMC INICIJALIZACIJA

  while (Mmc_Init(&PORTC,0));

  Delay_100ms();              // PAUZA 100 mS
  PORTB = 0xA0;
  Delay_100ms();


   // MMC FAT INICIJALIZACIJA

    if (!Mmc_Fat_Init(&PORTC,0)){
      PORTB = 0xF0;
      Delay_100ms();

      // SPI INICIJALIZACIJA, POVECANA FREKVENCIJA OSCILATORA

      Spi_Init_Advanced(MASTER_OSC_DIV16, DATA_SAMPLE_MIDDLE, CLK_IDLE_HIGH, LOW_2_HIGH);

      PORTB = 0x50;
      Delay_100ms();
      }


  // ULAZAK U PETLJU KADA PROdjE 1s

       while(1){     // KADA cnt DO?E DO 800, PROTEKLO VREME JE 1s
                   // RESETOVANJE BROJA?A cnt
      PORTB = ~PORTB;      // PROMENA PORTA B (TEST)


      Kreiranje_Fajla_Napon();   // POZIVANJE FUNKCIJE ZA KREIRANJE FAJLA 1
       Delay_100ms();

      }
     }



[/color]

MCU is PIC18F4520, clock speed is 8 MHz. I have MMC/SD Board from Mikroelektronika, and my program work's when I disabled Mmc_Fat_Append() function.

I try evirthing, but...
Thank in advance..

Velimir
Posts: 15
Joined: 02 Jun 2010 07:24

Re: function in mikroc

#4 Post by Velimir » 21 Oct 2010 19:07

Velimir wrote:Hi, first thank you for your repay.
I have send my program code.

Code: Select all

   #include <built_in.h>



[color=#00BF40] //------------INICIJALIZACIJA PROMENLJIVIH--------------------;

unsigned short mmc_errort,brojac_ivica=10;
unsigned short loop,loop2,brzina;

char file_content_n[512],databuffer[512];
char file_content_s[9];
char file_content_b[11];
char Ime_strujnog_Fajla[10];
char Ime_Fajla_Za_Brzinu[10];
char Ime_Naponskog_Fajla[10] ;
unsigned long tlong,Upisana_Brzina ;
char ch;
unsigned long Mereni_Napon;
signed long Merena_Struja,Izmerena_Brzina;
unsigned long sector=0,brupisa=0;
  unsigned brojac=0,pokazivac=0;

 Kreiranje_Fajla_Napon() {
 Ime_Naponskog_Fajla[0] = 'N';
 Ime_Naponskog_Fajla[1] = 'A';
 Ime_Naponskog_Fajla[2] = 'P';
 Ime_Naponskog_Fajla[3] = 'A';
 Ime_Naponskog_Fajla[4] = 'N';
 Ime_Naponskog_Fajla[5] = 'T';
 Ime_Naponskog_Fajla[6] = 'X';
 Ime_Naponskog_Fajla[7] = 'T';
 Mmc_Fat_Assign(&Ime_Naponskog_Fajla,0xA0);

         file_content_n[brojac]=54;
         file_content_n[brojac+1]=55;
         file_content_n[brojac+2]=32;
         file_content_n[brojac+3]=51;
         file_content_n[brojac+4]=50;
         file_content_n[brojac+5]=53;
         file_content_n[brojac+6]=32;
         file_content_n[brojac+7]=32;
          brojac=brojac+8;


       pokazivac++;
       if(pokazivac==54){
   [u]Mmc_Fat_Append();[/u]
  Mmc_Fat_Write(file_content_n,512);           // UPIS PODATAKA U POSTOJE?I FAJL ;
      pokazivac=0;
     brojac=0;
  }


}


//---------- PREKIDNA RUTINA-------------



 //---- MAIN-----
void main() {
  //---- PODEŠAVANJE REGISTARA-----
  TRISA = 0xFF;             // PORTA ULAZNI
  TRISB = 0x00;             // PORTB IZLAZNI
  TRISC = 0x173;            // RC7,RC3 I RC2 SU IZLAZNI
  PORTB = 0xF0;             // RB7, RB6, RB5, RB4 = 1
  TMR0L = 96;               // PO?RTNA VREDNOST TAJMERA
  INTCON = 0xA0;            // DOZVOLA PREKIDA, DOZVOLA PREKIDA NA TAJMERU 0
  INTCON2 = 0x84;           // PREKIDI BEZ PRIORITETE

  ADCON1 = 0x80;            // PODEŠAVANJE AN PINOVA KAO ANALOGNI
  CMCON  |= 7;              // ISKLJU?IVANJE KOMPARATORA
  Delay_100ms();            // PAUZA 100 mS
  T0CON = 0xC4;             // PODEŠAVANJE TAJMERA
  CCP1CON = 0x05;           // UKLJU?IVANJE CAPTURE MODA NA PINU RC2

  PIE1 = 0x04;              // DOZVOLA PREKIDA NA PINU RC2 NA RASTU?U IVICU SIGNALA
  PIR1 = 0x00;              // ISPITIVANJE PREKIDA


   brojac=0;


  // SPI INICIJALIZACIJA

  Spi_Init_Advanced(MASTER_OSC_DIV64, DATA_SAMPLE_MIDDLE, CLK_IDLE_HIGH, LOW_2_HIGH);

  // MMC INICIJALIZACIJA

  while (Mmc_Init(&PORTC,0));

  Delay_100ms();              // PAUZA 100 mS
  PORTB = 0xA0;
  Delay_100ms();


   // MMC FAT INICIJALIZACIJA

    if (!Mmc_Fat_Init(&PORTC,0)){
      PORTB = 0xF0;
      Delay_100ms();

      // SPI INICIJALIZACIJA, POVECANA FREKVENCIJA OSCILATORA

      Spi_Init_Advanced(MASTER_OSC_DIV16, DATA_SAMPLE_MIDDLE, CLK_IDLE_HIGH, LOW_2_HIGH);

      PORTB = 0x50;
      Delay_100ms();
      }


  // ULAZAK U PETLJU KADA PROdjE 1s

       while(1){     // KADA cnt DO?E DO 800, PROTEKLO VREME JE 1s
                   // RESETOVANJE BROJA?A cnt
      PORTB = ~PORTB;      // PROMENA PORTA B (TEST)


      Kreiranje_Fajla_Napon();   // POZIVANJE FUNKCIJE ZA KREIRANJE FAJLA 1
       Delay_100ms();

      }
     }



[/color]

MCU is PIC18F4520, clock speed is 8 MHz. I have MMC/SD Board from Mikroelektronika, and my program work's when I disabled Mmc_Fat_Append() function.

I try evirthing, but...
Thank in advance..

Velimir
Posts: 15
Joined: 02 Jun 2010 07:24

Re: function in mikroc

#5 Post by Velimir » 21 Oct 2010 19:11

Velimir wrote:
Velimir wrote:Hi, first thank you for your repay.
I have send my program code.

Code: Select all

   #include <built_in.h>



[color=#00BF40] //------------INICIJALIZACIJA PROMENLJIVIH--------------------;

unsigned short mmc_errort,brojac_ivica=10;
unsigned short loop,loop2,brzina;

char file_content_n[512],databuffer[512];
char file_content_s[9];
char file_content_b[11];
char Ime_strujnog_Fajla[10];
char Ime_Fajla_Za_Brzinu[10];
char Ime_Naponskog_Fajla[10] ;
unsigned long tlong,Upisana_Brzina ;
char ch;
unsigned long Mereni_Napon;
signed long Merena_Struja,Izmerena_Brzina;
unsigned long sector=0,brupisa=0;
  unsigned brojac=0,pokazivac=0;

 Kreiranje_Fajla_Napon() {
 Ime_Naponskog_Fajla[0] = 'N';
 Ime_Naponskog_Fajla[1] = 'A';
 Ime_Naponskog_Fajla[2] = 'P';
 Ime_Naponskog_Fajla[3] = 'A';
 Ime_Naponskog_Fajla[4] = 'N';
 Ime_Naponskog_Fajla[5] = 'T';
 Ime_Naponskog_Fajla[6] = 'X';
 Ime_Naponskog_Fajla[7] = 'T';
 Mmc_Fat_Assign(&Ime_Naponskog_Fajla,0xA0);

         file_content_n[brojac]=54;
         file_content_n[brojac+1]=55;
         file_content_n[brojac+2]=32;
         file_content_n[brojac+3]=51;
         file_content_n[brojac+4]=50;
         file_content_n[brojac+5]=53;
         file_content_n[brojac+6]=32;
         file_content_n[brojac+7]=32;
          brojac=brojac+8;


       pokazivac++;
       if(pokazivac==54){
   [u]Mmc_Fat_Append();[/u]
  Mmc_Fat_Write(file_content_n,512);           // UPIS PODATAKA U POSTOJE?I FAJL ;
      pokazivac=0;
     brojac=0;
  }


}


//---------- PREKIDNA RUTINA-------------



 //---- MAIN-----
void main() {
  //---- PODEŠAVANJE REGISTARA-----
  TRISA = 0xFF;             // PORTA ULAZNI
  TRISB = 0x00;             // PORTB IZLAZNI
  TRISC = 0x173;            // RC7,RC3 I RC2 SU IZLAZNI
  PORTB = 0xF0;             // RB7, RB6, RB5, RB4 = 1
  TMR0L = 96;               // PO?RTNA VREDNOST TAJMERA
  INTCON = 0xA0;            // DOZVOLA PREKIDA, DOZVOLA PREKIDA NA TAJMERU 0
  INTCON2 = 0x84;           // PREKIDI BEZ PRIORITETE

  ADCON1 = 0x80;            // PODEŠAVANJE AN PINOVA KAO ANALOGNI
  CMCON  |= 7;              // ISKLJU?IVANJE KOMPARATORA
  Delay_100ms();            // PAUZA 100 mS
  T0CON = 0xC4;             // PODEŠAVANJE TAJMERA
  CCP1CON = 0x05;           // UKLJU?IVANJE CAPTURE MODA NA PINU RC2

  PIE1 = 0x04;              // DOZVOLA PREKIDA NA PINU RC2 NA RASTU?U IVICU SIGNALA
  PIR1 = 0x00;              // ISPITIVANJE PREKIDA


   brojac=0;


  // SPI INICIJALIZACIJA

  Spi_Init_Advanced(MASTER_OSC_DIV64, DATA_SAMPLE_MIDDLE, CLK_IDLE_HIGH, LOW_2_HIGH);

  // MMC INICIJALIZACIJA

  while (Mmc_Init(&PORTC,0));

  Delay_100ms();              // PAUZA 100 mS
  PORTB = 0xA0;
  Delay_100ms();


   // MMC FAT INICIJALIZACIJA

    if (!Mmc_Fat_Init(&PORTC,0)){
      PORTB = 0xF0;
      Delay_100ms();

      // SPI INICIJALIZACIJA, POVECANA FREKVENCIJA OSCILATORA

      Spi_Init_Advanced(MASTER_OSC_DIV16, DATA_SAMPLE_MIDDLE, CLK_IDLE_HIGH, LOW_2_HIGH);

      PORTB = 0x50;
      Delay_100ms();
      }


  // ULAZAK U PETLJU KADA PROdjE 1s

       while(1){     // KADA cnt DO?E DO 800, PROTEKLO VREME JE 1s
                   // RESETOVANJE BROJA?A cnt
      PORTB = ~PORTB;      // PROMENA PORTA B (TEST)


      Kreiranje_Fajla_Napon();   // POZIVANJE FUNKCIJE ZA KREIRANJE FAJLA 1
       Delay_100ms();

      }
     }



[/color]

MCU is PIC18F4520, clock speed is 8 MHz. I have MMC/SD Board from Mikroelektronika, and my program work's when I disabled Mmc_Fat_Append() function.

I try evirthing, but...
Thank in advance..
HELP... :)

Post Reply

Return to “mikroC General”