Ir ao conteúdo
  • Cadastre-se

PIC Erro ao migrar código 18f4550 para 18f252


Posts recomendados

Prezados, o código abaixo roda no 18f4550, notem que em uma das linhas está assim: #fuses NOMCLR HSPLL PLL2 CPUDIV1

 

Selecionei o PIC 18f252 no CCS, troquei e usei #include <18f252.h), comentei as linhas que tratam sobre comunicação serial pois não vou usá-la e ali em #define MMCSD_PIN_SELECT troquei PIN_D3 por PIN_B0 (pino 21 do 18f252). Mas vi que não é tão simples assim pois o CCS deu erro 111: Unknown Keyword in #FUSES "CPUDIV1"

 

Alguém se propôem a fazer esta migração para mim  ? (só tenho 1 18f252, o 4550 não vende na minha cidade e custa uma pequena fortuna para mim no momento).

 

GRATO

 

 

// Read and write files to and from SD card using PIC18F4550 microcontroller
// C code for CCS C compiler
 
// SD card module connections
#define MMCSD_SPI_HW                // Use hardware SPI module
#define MMCSD_PIN_SELECT  PIN_D3
// End SD card module connections
 
#include <18F4550.h>
#device PASS_STRINGS = IN_RAM
#fuses NOMCLR HSPLL PLL2 CPUDIV1
#use delay(clock = 48MHz)
#use rs232(baud=9600, xmit=PIN_C0, rcv=PIN_C1)    // Initialize software UART
#use fast_io(D)
 
// Include MMC/SD card driver source file
#include <mmcsd_m.c>
 
// Include FAT library source file
#include <fat_m.c>
 
void main(void) {
  int8 i;
 
  FILE myfile;
 
  printf("\r\n\nInitialize FAT library ... ");
  delay_ms(2000);
 
  // Initializing the FAT library as well as the SD card ---> returns 0 if OK
  i = fat_init();
 
  if(i != 0)
    printf("Error initializing FAT library!");
 
  else {
 
    printf("FAT Library initialized");
    delay_ms(2000);
 
    // Display SD card type ---> MMC, SDSC or SDHC
    printf("\r\n\r\nCard Type: ");
 
    switch(g_card_type) {
      case MMC: printf("MMC"); break;
      case SDSC: printf("SDSC"); break;
      case SDHC: printf("SDHC");
    }
 
    delay_ms(2000);
    // Create folder 'Test Dir'
    printf("\r\n\r\nCreate 'Test Dir' folder ... ");
    if(mk_dir("/Test Dir/") == 0)
      printf("OK");
    else
      printf("error creating folder");
 
    delay_ms(2000);
    // Create a text file 'log.txt'
    printf("\r\n\r\nCreate 'log.txt' file ... ");
    if(mk_file("/log.txt") == 0)
      printf("OK");
    else
      printf("error creating file");
 
    delay_ms(2000);
    // Open the last created file 'log.txt' with write permission ('w')
    printf("\r\nOpen 'log.txt' file ... ");
    if(fatopen("/log.txt", "w", &myfile) != 0)
      printf("error opening file");
    else {
      printf("OK");
 
      delay_ms(2000);
      // Write some thing to the text file
      printf("\r\nWriting to the text file 'log.txt' ... ");
      if(fatputs("Hello,\r\nThis is a text file created using PIC18F4550 microcontroller and CCS C compiler\r\nHave a nice day ...", &myfile) == 0)
        printf("OK");
      else
        printf("writing error");
      delay_ms(2000);
      // Now close the file
      printf("\r\nClosing the file 'log.txt' ... ");
      if(fatclose(&myfile) == 0)
        printf("OK");
      else
        printf("closing error");
    }
 
    delay_ms(2000);
    // Reading 'log.txt' file
    printf("\r\n\r\nReading 'log.txt' file:");
    delay_ms(2000);
    // Open 'log.txt' file with read permission ('r')
    printf("\r\nOpen 'log.txt' file ... ");
    if(fatopen("/log.txt", "r", &myfile) != 0)
      printf("error opening file");
 
    else {
      printf("OK");
      delay_ms(2000);
      // Print the whole file
      printf("\r\nPrint 'log.txt' file:\r\n\r");
      delay_ms(2000);
      fatprintf(&myfile);
      delay_ms(2000);
      // Now close the file
      printf("\r\n\r\nClosing the file 'log.txt' ... ");
      if(fatclose(&myfile) == 0)
        printf("OK");
      else
        printf("closing error");
 
    }
 
  }
 
  delay_ms(2000);
  printf("\r\n\r\n***** END *****");
 
  while(TRUE) ;
 
}
// End of code

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
13 minutos atrás, sergiotronic disse:

Unknown Keyword in #FUSES "CPUDIV1"

Amigo isso é bem simples até pra mim que não vou com a cara do ccs. Ele diz que esta definição não existe no mc em questão. Você pode olhar no datasheet de ambos e ver qual nomenclatura é equivalente. Aparentemente é algo relacionado ao fuse de clock cuja seção no d.s é relativamente pequena. Outra dica que sempre dou é dar uma olhadela nos exemplos pela net afora. Algo como ccs pic 18f252 config fuses

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá de novo amigo. Claro não é você, mas tem gente que sequer sabe o que e que termos/palavras procurar e geralmente são pessoas mais humildes (em duplo sentido). P.ex., olha isso de agora há pouco que pequeno mas que GRANDE!...

À estes eventualmente nossas palavras e links são direcionados. Algo como no seu caso...

54 minutos atrás, sergiotronic disse:

apesar de eu ter pesquisado

... mas não achou o que procurava e sequer quis entender que...

1 hora atrás, .if disse:

Ele diz que esta definição não existe no mc em questão. Você pode olhar no datasheet de ambos e ver qual nomenclatura é equivalente. Aparentemente é algo relacionado ao fuse de clock cuja seção no d.s é relativamente pequena

... pois ignorou e não teceu comentário também inteligente sobre.

 

Nada (tudo) pessoal mas por precaução, coloquei você na minha lista negra. Mas no futuro após perceber uma mínima evolução positiva de postura, eventualmente posso lhe perdoar ok?

abç & boa sorte

Link para o comentário
Compartilhar em outros sites

.if muito grato por ter me colocado na sua lista negra, espero que ela de fato funcione

 

vtrx e MCO, agradeço demais. Vou pôr estes novos dados no código e tentar compilar pra ver no que dá

Vejam dois anexos, agora compila sem erro porém não consigo encontrar o .HEX. Fica gerando um tal de main.o (nunca vi isso).

CCSmodif1.jpg

CCSmodif.jpg

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...