求问各位大神 现在要在ARM Linux下实现28.8khz的方波

2019-07-16 09:04发布

RT  之前在裸机上使用的是定时器中断的方式  现在要在linux上实现   但是查资料后发现好多人说linux上无法产生1ms或更低的定时器中断  我之前尝试mod_tiMER  的确最低只能精确到10ms  求各位大神帮忙啊   真的无法实现吗   驱动里可不可以像裸机那样设置寄存器啊  或者有没有其他的方法?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
jiangxibian
1楼-- · 2019-07-16 09:05
今天没啥时间了,明天再搞   网上看到说用void ndelay(unsigned long nsecs);这个延时函数   能精确到ns    真的准吗- -?   求大佬解答
wjh_yw
2楼-- · 2019-07-16 13:21
学习学习,谢谢分享!
jiangxibian
3楼-- · 2019-07-16 14:09
在别的地方找到方法了   之前在别的帖子看有人还说linux嵌入式上无法实现1Khz以上的准确波形输出。。。。
关键代码贴下吧   和裸机操作寄存器有些像
static irqreturn_t timer_interrupt(void)
{       
//此处略去若干行
return IRQ_HANDLED;
}
unsigned long Ftclk,Fpclk=50000000; //s3c2440a+--?+Fpclk+?0MHz
    unsigned int tcfg0,tcfg1,tcon;
s3c2410_gpio_cfgpin(S3C2410_GPB(1), S3C2410_GPIO_OUTPUT);
    s3c2410_gpio_setpin(S3C2410_GPB(1), 0);
    tcfg0 = inl(S3C2410_TCFG0);
    tcfg1 = inl(S3C2410_TCFG1);
    tcon = inl(S3C2410_TCON);

jiangxibian
4楼-- · 2019-07-16 16:41
 精彩回答 2  元偷偷看……

一周热门 更多>