Ir ao conteúdo
  • Cadastre-se
Kollins

C18 ou XC8

Recommended Posts

Olá, Mundo.

Sou usuário Linux (ubuntu 12.04 64 bits) e possuo o MPLab e os compiladores C18 (3.40) e XC8.

No curso de programação que faço, o professor nos aconselhou a utilizar o compilador C18 3.46, no entanto, não encontrei esta versão para Linux.

Desta forma vou começar a praticar no XC8. O que é diferente de um compilador para o outro? Os comando são os mesmos?

Vou deixar aqui um programa que fiz no C18. O que eu não poderia fazer no XC8? Meu maior medo é de não conseguir realizar as atividades devido à esta mudança, mas se eu continuar no C18 não sei se vou conseguir também, já que estou com uma versão inferior.

#include<p18f4431.h>

// CONFIG1H

#pragma config OSC = IRCIO // Oscillator Selection bits (Internal oscillator block, port function on RA6 and port function on RA7)

#pragma config FCMEN = OFF // Fail-Safe Clock Monitor Enable bit (Fail-Safe Clock Monitor disabled)

#pragma config IESO = OFF // Internal External Oscillator Switchover bit (Internal External Switchover mode disabled)

// CONFIG2L

#pragma config PWRTEN = OFF // Power-up Timer Enable bit (PWRT disabled)

#pragma config BOREN = OFF // Brown-out Reset Enable bits (Brown-out Reset disabled)

// BORV = No Setting

// CONFIG2H

#pragma config WDTEN = OFF // Watchdog Timer Enable bit (WDT disabled (control is placed on the SWDTEN bit))

#pragma config WDPS = 32768 // Watchdog Timer Postscale Select bits (1:32768)

#pragma config WINEN = OFF // Watchdog Timer Window Enable bit (WDT window disabled)

// CONFIG3L

#pragma config PWMPIN = OFF // PWM output pins Reset state control (PWM outputs disabled upon Reset (default))

#pragma config LPOL = HIGH // Low-Side Transistors Polarity (PWM0, 2, 4 and 6 are active-high)

#pragma config HPOL = HIGH // High-Side Transistors Polarity (PWM1, 3, 5 and 7 are active-high)

#pragma config T1OSCMX = ON // Timer1 Oscillator MUX (Low-power Timer1 operation when microcontroller is in Sleep mode)

// CONFIG3H

#pragma config FLTAMX = RC1 // FLTA MUX bit (FLTA input is multiplexed with RC1)

#pragma config SSPMX = RC7 // SSP I/O MUX bit (SCK/SCL clocks and SDA/SDI data are multiplexed with RC5 and RC4, respectively. SDO output is multiplexed with RC7.)

#pragma config PWM4MX = RB5 // PWM4 MUX bit (PWM4 output is multiplexed with RB5)

#pragma config EXCLKMX = RC3 // TMR0/T5CKI External clock MUX bit (TMR0/T5CKI external clock input is multiplexed with RC3)

#pragma config MCLRE = OFF // MCLR Pin Enable bit (Disabled)

// CONFIG4L

#pragma config STVREN = ON // Stack Full/Underflow Reset Enable bit (Stack full/underflow will cause Reset)

#pragma config LVP = OFF // Low-Voltage ICSP Enable bit (Low-voltage ICSP disabled)

// CONFIG5L

#pragma config CP0 = OFF // Code Protection bit (Block 0 (000200-000FFFh) not code-protected)

#pragma config CP1 = OFF // Code Protection bit (Block 1 (001000-001FFF) not code-protected)

#pragma config CP2 = OFF // Code Protection bit (Block 2 (002000-002FFFh) not code-protected)

#pragma config CP3 = OFF // Code Protection bit (Block 3 (003000-003FFFh) not code-protected)

// CONFIG5H

#pragma config CPB = OFF // Boot Block Code Protection bit (Boot Block (000000-0001FFh) not code-protected)

#pragma config CPD = OFF // Data EEPROM Code Protection bit (Data EEPROM not code-protected)

// CONFIG6L

#pragma config WRT0 = OFF // Write Protection bit (Block 0 (000200-000FFFh) not write-protected)

#pragma config WRT1 = OFF // Write Protection bit (Block 1 (001000-001FFF) not write-protected)

#pragma config WRT2 = OFF // Write Protection bit (Block 2 (002000-002FFFh) not write-protected)

#pragma config WRT3 = OFF // Write Protection bit (Block 3 (003000-003FFFh) not write-protected)

// CONFIG6H

#pragma config WRTC = OFF // Configuration Register Write Protection bit (Configuration registers (300000-3000FFh) not write-protected)

#pragma config WRTB = OFF // Boot Block Write Protection bit (Boot Block (000000-0001FFh) not write-protected)

#pragma config WRTD = OFF // Data EEPROM Write Protection bit (Data EEPROM not write-protected)

// CONFIG7L

#pragma config EBTR0 = OFF // Table Read Protection bit (Block 0 (000200-000FFFh) not protected from table reads executed in other blocks)

#pragma config EBTR1 = OFF // Table Read Protection bit (Block 1 (001000-001FFF) not protected from table reads executed in other blocks)

#pragma config EBTR2 = OFF // Table Read Protection bit (Block 2 (002000-002FFFh) not protected from table reads executed in other blocks)

#pragma config EBTR3 = OFF // Table Read Protection bit (Block 3 (003000-003FFFh) not protected from table reads executed in other blocks)

// CONFIG7H

#pragma config EBTRB = OFF // Boot Block Table Read Protection bit (Boot Block (000000-0001FFh) not protected from table reads executed in other blocks)

void config_io(){

TRISB=0x02;

TRISC=0x00;

TRISD=0x00;

ANSEL0=0x00;

}

void main(){

OSCCON=0x72;

config_io();

while(1){

if(PORTBbits.RB1==0){

PORTDbits.RD0=0;

PORTCbits.RC3=1;

}

else{

PORTDbits.RD0=1;

PORTCbits.RC3=0;

}

}

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×