• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

andronikus

Gerar um sinal quadrado com Duty Cycle variavel....

2 mensagens neste tópico

Boas,

(A utilizar PIC18F258 e Hi-TIDE)

Pretendo gerar um sinal PWM com um periodo de 20ms. A ideia é utilizar um Timer (TIMER0) para fazer a contagem do tempo.... A interrupçao deste TIMER deve estar activa. Na rotina de serviço à interrupção deve ser colocado o pino RB0 a "1" ou a "0" conforme o estado anterior deste pino.

void interrupt isr(void)
{
if(RA0 == 0)
	RA0 = 1;
else
	RA0 = 0;

TMR0IF = 0;				
}

O meu main é este:

void main(void)
{
INTCON = 0b11100000;
TMR0IP = 0;
TMR0L = 195;				// Valor de contagem do TIMER
T0CON = 0b11000111;		// Byte de configuração


while(1);	

}

Mas parece que isto não está a funcionar....

Agradeço opiniões

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

estas  a usar algum IDE para programar? estive a ver os registos e parece-me estar bem. Alguns dão para observar as interrupçoes a acontecer e o estado dos bits de registos e é mais fácil fazer o debug.

tenta incializar o TMR0IF a 0 no main; e alem de k TMR0IF nao devia estar td junto?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora