Eai galera, estou começando na programação de micros, e tive algumas dificuldades.

Primeiro escrevi o programa ( que foi só o que aprendi no curso de mecatrônica que fiz, estruturas como If else, struct for, switch case, apenas aprendemos C++ básico, rodava tudo no proteus que é uma maravilha, mas na hora de compilar, surgiram os problemas).

Informações:

Escrevo e compilo no mplabX compilador C18 v3.40

Gravo com um pickit2

Há princípio dava erro de faltar informação de comando no .hex, visto que não sei como configurar bits corretamente.

O programa:

#include<p18f4550.h>
#include <stdio.h>
#include <stdlib.h>
#define Botao1 PORTAbits.RA1
#define Botao2 PORTAbits.RA2
#define Botao3 PORTAbits.RA0
#define Led1 PORTCbits.RC2
#define Led2 PORTDbits.RD0
#define Led3 PORTCbits.RC0
#define TBotao1 TRISAbits.TRISA1
#define TBotao2 TRISAbits.TRISA2
#define TBotao3 TRISAbits.TRISA3
#define TLed1 TRISCbits.TRISC2
#define TLed2 TRISDbits.TRISD0
#define TLed3 TRISCbits.TRISC0
void Sistema(void);
void main(void)
{
Sistema();
while(1)
{
if(Botao1==1)
{
Led1=1;
Led2=0;
Led3=0;
}
if(Botao2==1)
{
Led1=0;
Led2=1;
Led3=0;
}
if(Botao3==1)
{
Led1=0;
Led2=0;
Led3=1;
}
}
}
void Sistema(void)
{
ADCON1 |= 0X0F;
TBotao1=1;
TBotao2=1;
TBotao3=1;
TLed1=0;
TLed2=0;
TLed3=0;
}

Compilo, gravo (mesmo quando tentei configurar bits como achei na internet, mas sem sucesso)

Se alguém puder me ajudar, a gravar de forma que também funcione no protoboard,ajudaria bastante.

Já procurei muita coisa, e só tive mais duvidas :S

Exibições: 488

As respostas para este tópico estão encerradas.

Respostas a este tópico

Oi MG, boa tarde,

O PIC18F4550, é um ucomtolador muito complexo pra que está iniciando nesta área.

Eu recomendo você iniciar fazendo pequenos programas utilizando um dos PICs muito usados e

conhecidos por todos "PICqueiros", o PIC16F628A e o PIC16F877A.

Eles não têm  o "poder" de um PIC18F4550, mas como tem muito material disponível sobre eles na net,

é um bom passo para iniciantes em PIC.

Realmente, sem configurar o  ucontrolador, ele não funcionará.

O PIC18F4550 tem estes registradores de configuração:

CONFIG1L — — USBDIV CPUDIV1 CPUDIV0 PLLDIV2 PLLDIV1 PLLDIV0 --00 0000
CONFIG1H IESO FCMEN — — FOSC3 FOSC2 FOSC1 FOSC0 00-- 0101
CONFIG2L — — VREGEN BORV1 BORV0 BOREN1 BOREN0 PWRTEN --01 1111
CONFIG2H — — — WDTPS3 WDTPS2 WDTPS1 WDTPS0 WDTEN ---1 1111
CONFIG3H MCLRE — — — — LPT1OSC PBADEN CCP2MX 1--- -011
CONFIG4L DEBUG XINST ICPRT(3) — — LVP — STVREN 100- -1-1
CONFIG5L — — — — CP3(1) CP2 CP1 CP0 ---- 1111
CONFIG5H CPD CPB — — — — — — 11-- ----
CONFIG6L — — — — WRT3(1) WRT2 WRT1 WRT0 ---- 1111
CONFIG6H WRTD WRTB WRTC — — — — — 111- ----
CONFIG7L — — — — EBTR3(1) EBTR2 EBTR1 EBTR0 ---- 1111
CONFIG7H — EBTRB — — — — — — -1-- ----

Você tem que configurar alguns bits, Exemplo:

FOSC = INTOSCIO_EC      //internal ocsillator
WDT = OFF                       //turn off WDT
LVP = OFF                        //turn off LVP
BOR = ON                         //enable brownout reset
MCLRE = OFF                   //tie MCLR to Vdd, free up
CPD = ON                         //eprom protect
PLLDIV = 2;                       //assume 8 mhz input
CPU_DIV = OSC1_PLL2;    //no CPU postscaling
USBDIV = 2;                      //USB clock src is PLL
FCMEM = OFF;                  //fail safe clock monitor
IESO = OFF;                      //internal/external switch over
PWRT = OFF;                    //power up timer off
BORV = 46;                       //brown out reset voltage
VREGEN = OFF;                //USB voltage regulation
PBADEN = OFF;                //port B enable

Rui

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço