Jump to content

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


andronikus
 Share

Recommended Posts

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

Link to comment
Share on other 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?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.