Problemas com mikro C

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Problemas com mikro C

Mensagempor lasfclestat » 10 Nov 2008 16:00

Prezados

Estou começando agora a utilizar o MiKroC e o MiKroBasic.

Estou fazendo um programa para o PIC 16F628A, para fazer a gravação eu estou importando o arquivo .hex gerado e utilizando o ICD2.
O código compila corretamente, mais não esta funcionando, não acontece absolutamente nada.

Os códigos que eu estou utilizando esta descrito abaixo:

Código: Selecionar todos

MikroC

1-)

unsigned short i;

void main() {
   USART_init(19200);
   TRISB = 0b00001011;
   i = 0x41;
   while (1) {
       USART_Write(i);
       PORTB.F4 = 0;
       PORTB.F5 = 1;
       PORTB.F6 = 0;
       PORTB.F7 = 1;
       delay_ms(2000);
       USART_Write(i);
       PORTB.F4 = 1;
       PORTB.F5 = 0;
       PORTB.F6 = 1;
       PORTB.F7 = 0;
       delay_ms(2000);
       i++;
     }
}

2-)

unsigned short i;

void main() {
   USART_init(19200);
   i = 0x41;
   while (1) {                     
       USART_Write(i);                   
       delay_ms(500);
       i++;
     }
}

3-)
void main()
{
   Soft_Uart_Init(PORTB, 1, 2, 19200, 0);
   while (1) {
       Soft_Uart_Write(0x41);
       delay_ms(500);
     }
}

4-)

void main()
{
   USART_init(9600);                   

   PORTA = 0;               
   TRISA = 0b00100000;         
   PORTB = 0;               
   TRISB = 0b00001011;
   OPTION_REG = 0b10000111;
   INTCON = 0b11010000;
   PIE1= 0b00100000;
   
   while (1)
   {
       PORTA.F4 = 0;
       PORTA.F3 = 1;
       delay_ms(2000);
       USART_Write(0x41);                   
       PORTA.F4 = 1;
       PORTA.F3 = 0;
       delay_ms(2000);
       USART_Write(0x51);
   }
}

MiKroBasic

main:
  PORTB = 0               
  TRISB = 0               

  while TRUE
    PORTB = not PORTB     
    Delay_ms(1000)         
  wend
end.



Eu fiz o mesmo programa com o PCWH e funcionou corretamente no meu hardware.
Alguem poderia me ajudar, ou me dar uma dica do que esta acontecendo?

E estou usando o MiKro C 8.2.0.0 e o Mikro Basic 7.0.0.2

Obrigado.
"Se existe algo como repousar em nome da verdade. Então vós e teus amados, qualquer que sejam as dificuldades, não devem ficar separados indefinidamente!"

Ferrari Caim Lestat
lasfclestat
Bit
 
Mensagens: 47
Registrado em: 29 Jan 2008 15:48
Localização: Campinas

Mensagempor ffcprog » 11 Nov 2008 07:52

amigo, ao criar o projeto.
Você esta configurando os fuses, e clock corretamente ?

ffcprog.
ffcprog
Byte
 
Mensagens: 145
Registrado em: 14 Fev 2007 23:16

Mensagempor lasfclestat » 11 Nov 2008 09:30

Bem, eu estou configurando da seguinte maneira...

clock 4.000000 Mhz

WDT_OFF
LVP_OFF
MCLRE_ON
HS_OSC

fiz o teste agora com esta configuração:

clock 4.000000 Mhz

WDT_OFF
LVP_OFF
MCLRE_ON
HS_OSC
BODEN_OFF
BOREN_OFF
CP_OFF
DATA_CP_OFF
PWRTE_OFF

e funcionou...

Obrigado pela dica... :wink:
"Se existe algo como repousar em nome da verdade. Então vós e teus amados, qualquer que sejam as dificuldades, não devem ficar separados indefinidamente!"

Ferrari Caim Lestat
lasfclestat
Bit
 
Mensagens: 47
Registrado em: 29 Jan 2008 15:48
Localização: Campinas

Mensagempor otavio luiz » 11 Nov 2008 11:51

Se voce esta utilizando clock de 4mhz, então voce deve configurar o oscilador com XT e não como HS.
Lembre-se, zona de Fresnel não é nenhuma franquia de puteiro.
Avatar do usuário
otavio luiz
Byte
 
Mensagens: 257
Registrado em: 11 Out 2006 13:56
Localização: Barretos - SP, terra de Peão

Mensagempor lasfclestat » 11 Nov 2008 12:48

Já modifiquei isso, obrigado....
"Se existe algo como repousar em nome da verdade. Então vós e teus amados, qualquer que sejam as dificuldades, não devem ficar separados indefinidamente!"

Ferrari Caim Lestat
lasfclestat
Bit
 
Mensagens: 47
Registrado em: 29 Jan 2008 15:48
Localização: Campinas

Mensagempor fabio_pic » 11 Nov 2008 13:18

Vale lembrar que as funções para porta serial travam o pic. Não lembro que versão faz isso.
Procure pesquisar nesse sentido.

Abraços,
Fábio.
fabio_pic
Nibble
 
Mensagens: 81
Registrado em: 03 Set 2007 09:04
Localização: Rio de Janeiro

Mensagempor fabio_pic » 11 Nov 2008 13:19

Funções do MikroC.....

Fábio.
fabio_pic
Nibble
 
Mensagens: 81
Registrado em: 03 Set 2007 09:04
Localização: Rio de Janeiro

Mensagempor lasfclestat » 11 Nov 2008 13:27

Eu estou usando a versão 8.2.0.0, e por enquanto não travou...
estou usando a Usart por hardware....

Estou passando o resto do código que eu tinha no CCS para o mikro C...
Estou usando a recepção via interrupção...

[]s
"Se existe algo como repousar em nome da verdade. Então vós e teus amados, qualquer que sejam as dificuldades, não devem ficar separados indefinidamente!"

Ferrari Caim Lestat
lasfclestat
Bit
 
Mensagens: 47
Registrado em: 29 Jan 2008 15:48
Localização: Campinas

Mensagempor lasfclestat » 24 Nov 2008 15:11

Pessoal

Estive continuando a fazer minha implementação, e estou tendo dificuldade em alterar o estado das seguintes port (porta.F0, Porta.F1, porta.F2 e porta.F3), no caso do PIC16F628A essas 4 port, funciona também como entrada analogia.
Abaixo está um código que eu fiz para testar os saídas que eu preciso, apenas essas 4 port citado acima não esta funcionando.

Código: Selecionar todos
void initial_setup_pic(void);

void main(void)
{
   delay_ms (1);
   initial_setup_pic();
   do
   {
      PORTA.F0 = 1;
      PORTA.F1 = 1;
      PORTA.F2 = 1;
      PORTA.F3 = 1;
      PORTA.F4 = 1; 
      PORTB.F3 = 1;
      PORTB.F4 = 1;
      PORTB.F5 = 1;
      delay_ms (2200);
      PORTA.F0 = 0;
      PORTA.F1 = 0;
      PORTA.F2 = 0;
      PORTA.F3 = 0;
      PORTA.F4 = 0;
      PORTB.F3 = 0;
      PORTB.F4 = 0;
      PORTB.F5 = 0;
      delay_ms (2200);
   } while (1);
}

void initial_setup_pic(void)
{
   USART_init(19200);
   PORTA = 0b00100000;
   PORTB = 0b00000000;
   TRISA = 0b00100000;
   TRISB = 0b00000000;
   CCP1CON = 0x00;
   PIE1.RCIE = 1;
   INTCON = 0b11010000;
   OPTION_REG = 0b10001111;
   delay_us(5);
}


As outras configurações são :

clock 4.000000 Mhz

WDT_OFF
LVP_OFF
MCLRE_ON
HS_OSC
BODEN_OFF
BOREN_OFF
CP_OFF
DATA_CP_OFF
PWRTE_OFF

Alguem poderia me ajudar?

Obrigado
"Se existe algo como repousar em nome da verdade. Então vós e teus amados, qualquer que sejam as dificuldades, não devem ficar separados indefinidamente!"

Ferrari Caim Lestat
lasfclestat
Bit
 
Mensagens: 47
Registrado em: 29 Jan 2008 15:48
Localização: Campinas

Mensagempor otavio luiz » 24 Nov 2008 15:36

voce tem que desligar os comparadores, registrador cmcon.
Lembre-se, zona de Fresnel não é nenhuma franquia de puteiro.
Avatar do usuário
otavio luiz
Byte
 
Mensagens: 257
Registrado em: 11 Out 2006 13:56
Localização: Barretos - SP, terra de Peão

Mensagempor lasfclestat » 24 Nov 2008 15:56

Então, no registrado CCP1CON eu deixei desligado o Capture,Compare e PWM.
    CCP1CON – CCP OPERATION REGISTER
    U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
    — — CCP1X CCP1Y CCP1M3 CCP1M2 CCP1M1 CCP1M0

    bit 3-0 CCP1M<3:0>: CCPx Mode Select bits
    0000 = Capture/Compare/PWM off (resets CCP1 module)
    0100 = Capture mode, every falling edge
    0101 = Capture mode, every rising edge
    0110 = Capture mode, every 4th rising edge
    0111 = Capture mode, every 16th rising edge
    1000 = Compare mode, set output on match (CCP1IF bit is set)
    1001 = Compare mode, clear output on match (CCP1IF bit is set)
    1010 = Compare mode, generate software interrupt on match (CCP1IF bit is set, CCP1 pin is unaffected)
    1011 = Compare mode, trigger special event (CCP1IF bit is set; CCP1 resets TMR1
    11xx = PWM mode
Agora o CMCON não achei nenhum flag para desligar o comparador, os flags nele apenas configura o modo de operação dos comparadores, se não estou enganado
    CMCON – COMPARATOR CONFIGURATION REGISTER
    R-0 R-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
    C2OUT C1OUT C2INV C1INV CIS CM2 CM1 CM0

    C2OUT: Comparator 2 Output bit
    C1OUT: Comparator 1 Output bit
    C2INV: Comparator 2 Output Inversion bit
    C1INV: Comparator 1 Output Inversion bit
    CIS: Comparator Input Switch bit
    C2 VIN- connects to RA1
    CM<2:0>: Comparator Mode bits

Eu acabei de fazer o teste, fazendo CMCON = 0x00; porém não mudou nada...

Eu acabei de tentar tambem alterar o estado com instrução em assembler, porém não funcionou...
"Se existe algo como repousar em nome da verdade. Então vós e teus amados, qualquer que sejam as dificuldades, não devem ficar separados indefinidamente!"

Ferrari Caim Lestat
lasfclestat
Bit
 
Mensagens: 47
Registrado em: 29 Jan 2008 15:48
Localização: Campinas

configure o cmcon

Mensagempor r.bertini » 24 Nov 2008 15:57

Configura o cmcon com o valor 0x07 que vai funcionar
R.Bertini
__________________________________
#include<stdio.h>
main()
{
printf("\n R.Bertini");
}
r.bertini
Bit
 
Mensagens: 28
Registrado em: 30 Ago 2008 01:43

Mensagempor lasfclestat » 24 Nov 2008 16:03

Funcionou

Pessoal, mais uma vez obrigado pela ajuda...
"Se existe algo como repousar em nome da verdade. Então vós e teus amados, qualquer que sejam as dificuldades, não devem ficar separados indefinidamente!"

Ferrari Caim Lestat
lasfclestat
Bit
 
Mensagens: 47
Registrado em: 29 Jan 2008 15:48
Localização: Campinas


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x