TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: MAUTV en 12 de Abril de 2012, 16:15:08

Título: Problema no controle pino a pino com Hi-Tech
Publicado por: MAUTV en 12 de Abril de 2012, 16:15:08
Olá! Estou migrando para o compilador Hi-Tech, entretanto estou encontrando algumas dificuldades quanto o acionamento de pinos individuais como por exemplo.
Código: [Seleccionar]
#include <htc.h>
__CONFIG(FOSC_INTRCIO & WDTE_OFF & MCLRE_OFF & BOREN_OFF & CP_OFF & CPD_OFF);
#define _XTAL_FREQ 4000000

main()
{
    GPIO = 0X00;
    TRISIO = 0X00;

    while(1)
    {
         GP0 = 1;
         __delay_ms(300);
         GP0 = 0;
         __delay_ms(300);
 
     }
}

Desta forma tudo funciona perfeitamente, entretanto quando compilo este não funciona como esperado:

Código: [Seleccionar]
#include <htc.h>
__CONFIG(FOSC_INTRCIO & WDTE_OFF & MCLRE_OFF & BOREN_OFF & CP_OFF & CPD_OFF);
#define _XTAL_FREQ 4000000

main()
{
    GPIO = 0X00;
    TRISIO = 0X00;

    while(1)
    {
         GP0 = 1;
         GP1 = 1;
         GP2 = 1;
         GP4 = 1;
         __delay_ms(300);
        GP0 = 0;
        GP1 = 0;
        GP2 = 0;
        GP4 = 0;
         __delay_ms(300);
     }
}

Neste, apenas os pinos GP2 e GP4 funcionam. Este software esta escrito para o PIC12F629, mas este erro ocorre tambem quando programo o PIC16F877A em qualquer porta entretanto com outras falhas. (PORTA, PORTB, PORTC......)

Aguardo a ajuda para solucionar este problema.

Muito obrigado.
Título: Re: Problema no controle pino a pino com Hi-Tech
Publicado por: AngelGris en 12 de Abril de 2012, 19:27:19
  Debes deshabilitar los comparadores. Pon "CMCON = 7" justo antes de configurar el puerto.

Código: C
  1. #include <htc.h>
  2. __CONFIG(FOSC_INTRCIO & WDTE_OFF & MCLRE_OFF & BOREN_OFF & CP_OFF & CPD_OFF);
  3. #define _XTAL_FREQ 4000000
  4.  
  5. main()
  6. {
  7.  
  8.     CMCON = 7;
  9.     GPIO = 0X00;
  10.     TRISIO = 0X00;
  11.  
  12.     while(1)
  13.     {
  14.          GP0 = 1;
  15.          GP1 = 1;
  16.          GP2 = 1;
  17.          GP4 = 1;
  18.          __delay_ms(300);
  19.         GP0 = 0;
  20.         GP1 = 0;
  21.         GP2 = 0;
  22.         GP4 = 0;
  23.          __delay_ms(300);
  24.      }
  25. }
Título: Re: Problema no controle pino a pino com Hi-Tech
Publicado por: MAUTV en 13 de Abril de 2012, 00:50:17
Nossa, muito obrigado pela ajuda!

Foi certeiro.  ((:-))