arm9定时器课程设计
㈠ arm定时器问题
没错啊
㈡ ARM9中断定时器程序下载到nand中,发生中断时,跳到0x18处,跳到s3c2440内部SRAM出还是nand处执行
启动后,nand是映射到ram中,然后开始运行,所以我觉得是在内部的ram中运行
㈢ 求arm7定时器精确延时程序
我想的方法是到9us附近用循环+ndelay检查jiffies,不知道这样做好不好。如果要求非常严格,最好是测机器周期然后用忙等待实现
㈣ 在arm9+linux线程中怎样实现毫秒/微秒级的延时/定时
3层递归的空循环。计算全部指令周期,一次循环就是固定的延时。
㈤ arm嵌入式怎样用定时器设置延迟函数
这是用systick中断的例子
systick初始为1ms(默认值就是1ms)
定义一变量
u16
DelayR;
在主程式里设定要延迟的时间,
并使能SysTick中断
DelayR
=
50ms
//
延迟50ms
然后在中systick中断涵数里,
加入
if
(DelayR)
{
if
(
㈥ 利用CPU的定时器定时,设计一个电子时钟
估计没有人会给你的。原因如下:
1. 最重要的,就是没有悬赏分。不管多少,没专有诚意。
2. CPU没有讲清楚属是什么CPU,51?ARM? POWERPC?
3. LZ太懒。如果是关于细节问题,估计可以给你解答。你这太笼统,就给一题,想吃现成的。如果想弄个现成的,网络上多的是。在这边别人就算给你的答案,估计也是复制粘贴过来的。
㈦ 我的课程设计是利用arm做一个计时器,我在网上找到的都是利用8051单片机做的计时器 ,arm和单片机一样么
ARM是32位单片机,包括好多种,其中STM32应用较多,它的功能比8051强大很多,因此内部结构和操作都要复杂得多,没有经过专门学习是不能编程的,也看不懂别人编的程序
㈧ arm9 +linux的实时时钟
嘿嘿,你的开发文档能给我一份吗?
[email protected]
㈨ arm7 中断和定时器使用的详细讲解!!!
arm7 是内抄核名称,说明可以到www.arm.com上找到,中断控制器、定时器不同厂家生产的cpu会有差异,应该根据不同的cpu的具体型号,到相应的官方网站下载 datasheet
㈩ 有熟悉ARM9 s3c2440A 的大虾来我为指点下,是定时器的汇编,我是新手,求教!
特定的板子我不太了解,抽象的说一说吧,相信可以帮到你。一般而言定时器硬件的作用是为了避免忙等待loop类的delay(就是一个循环利用cpu执行指令需要时间来达到逻辑上的延时),使用同步运作的硬件(定时器硬件计时,超时后通过中断通知cpu),辅以中断来达到延时效果,这种延时是异步的(必须将原本的逻辑以delay作为一个断面,将断面以后放到超时函数处理),如果像你代码这种不存在操作系统,无多任务的情况下,其实配置了中断并使用中断处理的异步方式,主程序还得忙循环等待(loop1: b loop1)
说下你的程序程序为何没用。不是频率问题,我们看下你的程序,进入loop循环前,灭灯,然后调用delay,接着进入循环,循环体中的代码始终在开灯,这里存在两个问题:
1、delay函数实际不管用。这点后续再说
2、循环中的代码始终再开灯,而不是根据当前灯的状态开灯或灭灯
说下delay
1、刚刚提到过,不用定时器,可以忙循环等待,for (i = K; i > 0; --i);,这个循环delay的时间大体上等于K乘以一个循环所使用的时间(算算几条指令,乘以arm时钟周期)
2、使用定时器的话,中断方式,之前也提到了,你必须将loop函数分解,每次根据当前状态执行一个开/灭灯动作,然后将这个函数挂接在超时中断处理函数能运行到的流程上,主程序在配置完超时寄存器和中断服务后,忙循环等待loop1: b loop1
3、使用定时器,但不用中断方式,则逻辑上,delay函数包含两个过程:a、配置定时器,开定时器(这是你目前delay函数所做的),b、循环读取CNT寄存器,直到计数为0(也许定时器会自动复位,这时要留有余地,比如判断小于20类似的)。也即,你需要循环的判断是不是已经“运行了需要的时间”了这一点。虽说这样体现不出定时器的好处了,但从用法考虑,就是这么做的