Página 1 de 1

Dúvida no CCS

MensagemEnviado: 28 Jun 2010 11:06
por ÁgioFelipe
Pessoal vejam o seguinte código:

Código: Selecionar todos
#define Botão PIN_A0
#define Controle PIN_A2

#byte Ra = 0x05
#bit Buzzer = Ra.4
#define Válvula PIN_A5



void main()
{

   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_OFF);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_64);
   setup_timer_1(T1_DISABLED);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);


while(1)
   {
   output_bit(Válvula,1);

    Buzzer = 1;

   }




Porque no proteus válvula vai para 1 e buzzer não vai?

MensagemEnviado: 28 Jun 2010 11:23
por Sergio38br
Alguns pics tem o Pino 4 como open drain, coloca um pull-up, e verifica

[ ]'s
Sergio

MensagemEnviado: 28 Jun 2010 12:17
por xultz
O CCS aceita variável com acento?

MensagemEnviado: 28 Jun 2010 13:33
por _blackmore_
conforme observação do xultz ... o CCS não aceita acentuação no código, apenas onde colocamos os textos, observações em geral.

MensagemEnviado: 28 Jun 2010 14:17
por ÁgioFelipe
Desculpe, isso foi um erro na hora de postar o código.
Aqui vai o código correto:
Código: Selecionar todos

#byte Ra = 0x05
#bit Buzzer = Ra.4
#define Valvula PIN_A5

void main()
{

   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_OFF);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_64);
   setup_timer_1(T1_DISABLED);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);

while(1)
   {
output_bit(Valvula,1);

   Buzzer = 1;

   }

}


A dúvida é seguinte: Esse código tá compilando, mas na hora de executar Valvula vai pra 1 mas Buzzer não.

MensagemEnviado: 28 Jun 2010 14:32
por Sergio38br
qual pic vc esta usando, verifica se o pino 4 não é coletor aberto neste modelo..

[ ]'s
Sergio

MensagemEnviado: 28 Jun 2010 18:04
por ÁgioFelipe
Não é coletor aberto não.
Já tá tudo certo, tive que ver o assembly gerado para resolver o problema.
Quando se usa
#byte Ra = 0x05 #bit Buzzer = Ra.4 e depois Buzzer = 1;
Você está trabalhando diretamente com os bits, então você que se encarregue de configurar este bit como saída.
Ao contrário de output_bit(Valvula,1); Que o código gerado já configura aquele bit como saída.

Valeu.