Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

motor speed and direction control

Status
Not open for further replies.
I have been using MPLAB to write code in asm to control the speed and direction of a small electric motor. I wish to use 4 buttons for forward, reverse, halt and emergency stop. There is a wireless link between the hand held controller and the motor. I have produced code to generate a pwm signal for the motor, which works, but my problem is that I need to detect when a button has been pressed. In other words I need to use an interrupt, but am not really sure how to use the interrupt.

The program is likely to spend most of its time in the pwm sub-routine. An interrupt will jump me into the ISR, but what should I do when I get there, and how do I cancel the pwm sub-routine RETURN. In the ISR I assume I need to check which button has been pressed, but what about that sub-routine RETURN. How do I get rid of that.

I have been using a 16F630. Should I use something like a 16F785 which contains a pwm generator, and so avoid the need to write pwm code.

Thanks in advance for any help.

Eddie Price
 
You could place a conditional statement in the PWM routine that is SET/UNSET by the button ISR. You could place a conditional statement just before calling the PWM routine again SET/UNSET by the button routine. Let the PWM routine return, so that the stack is cleared.
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top