It mainly tells about how to use QuecPython_Timer based on EC600S, for the rest, they are just similar. In most cases, the timer is used for timing and counting, which can be used as precise delay processing, but also used to calculate the total number of pulses under the premise of connecting a clock source. In this article, you will learn all the settings of the Timer and how to use it.
Interaction operation
Interact with module via QPYcom. The next case is based on Timer0 and Timer1. As for Timer2 and Timer3, it is similar.
Note
- The reason to execute command ”from machine import Timer’’ is to make the Timer module invisible in current space.
- Only execute “from machine import Timer” command in module can the function and variate in Timer be used.
- Please do remember above operations have on connection with any peripheral, it just serves as reference to get familiar with commands.
Download and verify
SW codes
The referential coded of the matched demo is the timer_file.py file that in the same directory. Download .py file and run it on module. The following link shows the codes: Click to download codes.
import log from machine import Timer log.basicConfig(level=log.INFO) # Set log output level Timer_Log = log.getLogger(“Quectel”) # Get logger object log_print_num = 5 state = 1 timer0 = Timer(Timer.Timer1) # Make an executable function and import timer def timer_test(t): global log_print_num global state Timer_Log.info(‘log_print_num is %d’ % log_print_num) log_print_num -= 1 if log_print_num <= 0: Timer_Log.info(‘timer exit’) state = 0 timer0.stop() # End this timer timer0.start(period=1000, mode=timer0.PERIODIC, callback=timer_test) # Start timer while state: pass
HW connection
This is just aimed at timer, as a result, there is no needed peripheral.
Result
- Run timer_file.py in QPYcom.
- Check the output in interactive surface of QPYcom.
HW description
Currently, 4 timers are available; as for details, please refer to the link: HW support
SW design
SW-related API, please refer to link: Timer
Constant illustration
Constant | Illustration |
---|---|
Timer.Timer0 | Timer0 |
Timer.Timer1 | Timer1 |
Timer.Timer2 | Timer2 |
Timer.Timer3 | Timer3 |
Timer.ONE_SHOT | One shot mode, the timer just executes for one time |
Timer.PERIODIC | Periodic mode, the timer executes periodically |
Create Timer object
timer = Timer(Timer)
The port parameter for creating timer object is shown as next:
Parameter | Type | Illustration |
---|---|---|
Timer | int | Timer number, the EC600S supports Timer 0 to Timer 3. |
Start timer
timer.start(period, mode, callback):
Start corresponding timer. Here shows the port parameter.
Parameter | Type | Illustration |
---|---|---|
period | int | Interrupt period, the unit is ms. |
mode | int | Running mode, as for Timer. ONE_SHOT, the timer just executes one time; while for Timer.PERIODIC, the timer executes periodically. |
callback | function | Timer execution function |
Return value: if it is a success to start, it returns the integer 0, otherwise, it returns integer -1.
Stop timer
timer.stop():Stop corresponding timer without parameter.
Return value: if it is a success to start, it returns the integer 0, otherwise, it returns integer -1.