历史上的今天
今天是:2024年11月26日(星期二)
2018年11月26日 | TQ2416开发板TIMER中断应用控制设备
2018-11-26 来源:eefocus
本期介绍的新一代ARM9开发板TQ2416的控制设备代码应用,使用TIMER代码,进行对设备的时段控制。Timer语法,定时器代码,功能是在指定的时间间隔内反复触发指定窗口的定时器事件。
下面是资深博主dengchonglin分享的关于TIMER代码如何应用在TQ2416开发板。
如果需要使用 TQ2416开发板 做一个控制设备,需要实现 US 级别的中断~!
而且还不能用 FOR 循环来实现,因为FOR循环是暂用资源的计时。这样会使开发板的CPU开销太大,无法承载,使用TIMER代码可以更好地运行控制程序。
看了一下 DATASHEET 里面有 5 个TIMER TIMER0~3 PWM 输出,TIMER4 系统 TICK
TIMER4 TICK
TIMER3 TOUCH
TIMER2
TIMER1
TIMER0 BL
最后决定用 TIMER2 中断实现。
1、申请一个事件
2、启动一个线程等待中断事件
3、设置 TIMER2 PWM
g_pPWMRegs->TCFG1 &= (~(0xf<<20)); //用于中断
g_pPWMRegs->TCFG1 &= (~(0xf<<8));
g_pPWMRegs->TCFG1 |= (0<<8); //mux = 1/2
g_pPWMRegs->TCON &= (~(0xf<<12));
设置定时器时间
void Set_Timer(UINT32 nUS)
{
DWORD tmp;
g_pPWMRegs->TCNTB2 = nUS*g_PRINTER_1us_Counter - 1;
g_pPWMRegs->TCMPB2 = 0 ;
//一定要用下面的赋值方式,要不不会产生中断
tmp = g_pPWMRegs->TCON & (~(0xf << 12));
g_pPWMRegs->TCON = tmp | (2 << 12);
g_pPWMRegs->TCON = tmp | (1 << 12);
}
至此,TIMER2 已经跑起来了~!
史海拾趣
|
DO-254中的高设计可靠性的逻辑综合(十)--使用Precision综合可以不用担心设计可靠性 在一些应用中,例如DO-254的A级和B级,对于设计可靠性的要求是非常重要的,而面积和性能的要求相应的优先级比较低。对这样的工程来说,通常会建议采用一个全局的选项,能够关闭一些优化后难以验证的功能。 这个全局选项要有两个功能,一个是能够自 ...… 查看全部问答> |
|
奇怪:Design Templates设为Small footprint device时模拟器跑不起来,而设为PDA时可以? 昨天,我将Design Templates设为PDA时模拟器跑起来了. 附: 在Builder options中,去掉Enable KITL; 在Target-〉Connectivity options->Debugger选none. 而今天自己想再试一 ...… 查看全部问答> |
|
我用VB.net开发一个小程序 有一个teXtboX的输入框 我想让程序在cE6下一点该输入框就跳出输入键盘 该怎么做呢 谢谢… 查看全部问答> |
|
我想在WinCE下通过DeviceIOControl来改变LCD背光电源的状态以实现背光灯的亮灭控制。 bResult = DeviceIoControl(hDevice, // device to be queried ...… 查看全部问答> |
|
想和單片機高手一起討論下這個簡單串口中斷程序的問題所在!!! 我編寫了一個串口中斷匯編程序,不復雜,調試也沒有出現問題,但是就是工作不了,我想和大家討論下究竟是什么錯誤導致它運\行出錯~請大家幫忙... T2CON EQU 0C8H T2MOD EQU 0C9H TR2 BIT T2CON.2 RCAP2L EQU 0CAH RCAP2H EQU 0CBH TH2 EQU 0C ...… 查看全部问答> |
|
#include <stdio.h>#define N 9int a[N];int k;int function(int m){ int j=1; while(j<m) { while(a[k]==0) k=(k+1)%N; j++; k=(k+1)%N; } while(a[k]==0)&nbs ...… 查看全部问答> |




