Skip to content
Snippets Groups Projects
Commit 41f6b6d6 authored by Birte Kristina Friesel's avatar Birte Kristina Friesel
Browse files

MSP430: Show calculated real timer frequency on 'info"

parent 20037a10
No related branches found
No related tags found
No related merge requests found
......@@ -86,7 +86,7 @@ arch_help:
arch_info:
@echo "CPU Freq: ${cpu_freq} Hz"
@echo "Timer Freq: ${timer_freq} Hz"
@echo "Timer Freq: ${timer_freq} Hz -> $(shell src/arch/msp430fr5969lp/model.py f_timer "${cpu_freq}" "${timer_freq}")"
@echo "I2C Freq: ${i2c_freq} Hz"
.PHONY: arch_clean arch_help arch_info monitor program
#!/usr/bin/env python3
import numpy as np
import sys
# include/arch/msp430fr5969lp/driver/timer.h
def get_timer_frequency(f_cpu, f_timer):
if f_cpu == 16000000:
ta0_main_div = 8
elif f_cpu == 8000000:
ta0_main_div = 4
elif f_cpu == 4000000:
ta0_main_div = 2
elif f_cpu == 1000000:
ta0_main_div = 1
else:
raise ValueError("Invalid f_cpu")
if f_cpu == 1000000:
if f_timer >= 1000:
divisor = 1
counter = 1000 / (f_timer / 1000)
elif f_timer >= 20:
divisor = 1
counter = 1000000 / f_timer
else:
divisor = 8 * 2
counter = 62500 / f_timer
else:
if f_timer >= 1000:
divisor = ta0_main_div * 1
counter = 2000 / (f_timer / 1000)
else:
divisor = ta0_main_div * 1
counter = 2000000 / f_timer
return f_cpu / divisor / int(counter)
module = sys.argv[1]
if module == 'f_timer' and len(sys.argv) == 4:
try:
f_cpu = int(sys.argv[2])
f_timer = int(sys.argv[3])
except:
sys.exit(0)
if f_cpu != 0 and f_timer != 0:
print('{:.2f}'.format(get_timer_frequency(f_cpu, f_timer)))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment