Shop OBEX P1 Docs P2 Docs Learn Events
Problem with SX48 Timer1|2 — Parallax Forums

Problem with SX48 Timer1|2

GC4130GC4130 Posts: 13
edited 2007-10-10 23:41 in General Discussion
I am having problems running the following code

DEVICE  SX48,OSCHS1
FREQ 50_000_000

F var word

Brake_pin pin Rb.6 output
MTR_speed pin Rc.2 output

brake         sub 
speed         sub

Program  Start

Start:
    TIMER1 PRESCALE,5 ' 1:32 prescaler 
    TIMER2 PRESCALE,5 ' 1:32 prescaler

    low rb.1

    F=1836
    Brake 
    
    F=7000
    speed

main:
    F=1836 'pulse width control
    Brake 
    
    F=7000 'freq control 
    speed

    pulsout rb.1, 5
    pauseus 50
    
goto main

Brake:
    TIMER1 pwm,F,65000   
    
return


speed:
    TIMER2 pwm,50,F 
return




It appears to run correctly when I do not run the Brake and speed subroutines in the main loop. My goal is to independantly run two devices at different frequencies and have the ability to change the freq of one while changing the pulse width of the other, all while the main loop is running. What am I missing?

thanks in advance

George

Comments

  • BeanBean Posts: 8,129
    edited 2007-10-10 12:07
    I think everytime you use the "TIMERx PWM" command it will reset the timer.
    You are calling Brake and Speed every 100 microseconds.
    Only call Brake and Speed if the value of "F" changes.

    Bean.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    My goal is to live forever...Or die trying.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    www.hittconsulting.com
    ·
  • GC4130GC4130 Posts: 13
    edited 2007-10-10 14:42
    Bean,

    I intended to write the code in that way I just didn't get there yet. I tried what you suggested but from a different approach I added a pause command in the main loop and increased its value until the PWM frequencies appeared. It appears to be directly tied to the slower of the 2 signals, which makes sense. I have never seen a reset time referenced anywhere for the Timerx PWM command do you know of a reference that I am missing? Should this be added to the help file in some way?

    thanks for your help

    George
  • BeanBean Posts: 8,129
    edited 2007-10-10 23:41
    If you don't want the timer to reset, then you can adjust the R1 and R2 values for the timer.

    The reason the timer must be reset is because the timer triggers when it hits the R1 or R2 value.

    For example:
    · Let's say you had R1 set to 200 and the timer is currently at 110.
    · Now let's say the new PWM value sets R1 to 100. Since the timer is already past 100, it will have to continue all the way to 65535 and roll over, then when it reaches 100 it will toggle the output pin. This would cause a huge glitch in the PWM output.

    Bean.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    My goal is to live forever...Or die trying.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    www.hittconsulting.com
    ·
Sign In or Register to comment.