嵌入式开发
图灵AI云
格物致知
展开
-
ARM7内核寄存器、中断向量控制器
ARM7内核寄存器分布ARM7TDMI-S内核共37个寄存器。R0—R7,通用寄存器,共8个。R8—R12,除快中断有自己寄存器(Rx_fiq),其他模式共用,共10个。R13,栈指针寄存器。用户、系统共用外,其他模式有独立寄存器,共6个。R14,连接寄存器。当程序跳转(BL)、异常模式时,用于保存当前PC值。同上,共6个。R15,程序计数寄存器,所转载 2015-06-19 11:11:40 · 2629 阅读 · 0 评论 -
嵌入式中如何统一多幅位图的调色板并生成C格式数据详解
在嵌入式开发当中,我们经常会需要显示公司logo,或者操作界面的图标,也自然会用到图像转换工具,比如uC-GUI-BitmapConvert, 下载地址连接页面 ,我们可以用它进行输入一幅位图,然后输出该位图对应的C语言形式的数据格式(包括位图调色板及位图数据部分,该部分就是调色板的索引)。这个工具很好用,但是对于不同图像会得到不同的调色板及数据索引,这样的话,如果有很多图像需要显示,就要得到很多不原创 2015-06-02 15:50:09 · 2461 阅读 · 0 评论 -
如何生成一幅 TW8811 可显示的位图图像数据
由于需要将位图图像输出到显示芯片 TW8811 显示,因些需要生成一张即包含位图数据,又包含位 TW8811 配置的数据表。所以按要求写了一下程序。python 代码具体可见 github 因此记录一下整个过程:要制作一张满足条件的数据表,需要先准备一幅位图图像,可以由工具 uC-GUI-BitmapConvert 生成,对于如何生成位图图像数据,具体可见另一篇文章 嵌入式中如何统一多幅位图的调色板原创 2016-04-30 15:16:01 · 1047 阅读 · 0 评论 -
ARM7 s3c44box中断全局变量问题
今天碰到一个问题,即ARM7 s3c44box中断全局变量问题,当时的应用情景如下:在中断函数里维护一个全局变量,它用于标志开关,即中断来就开,注意这个中断函数是在a.c的文件里定义的, 即flag=1。 在另外一个函数中会用到该全局变量,即while(!flag); flag=0; 会对该变量关闭的作用,它的定义在b.c 中。问题来了,如果我在a.c中定义该变量,在b.c中声明该全局变量,就会发原创 2015-11-07 13:15:11 · 777 阅读 · 0 评论 -
S3C44b0x通用延时函数,延时time个100us函数理解
延时函数如下所示: void Delay(int time) { int i,adjust=0; if(time==0) { time=200; adjust=1; del转载 2015-09-07 16:58:11 · 1520 阅读 · 0 评论 -
嵌入式中的上升沿与高电平触发的影响
最近在研究嵌入式用ARM7去控制马达电机的走动问题,其中电机有个光电开发,是高电平触发,当时没有注意采用的一直是上升沿触发,结果就会导致马达走动的不稳定,因为程序有时能捕捉到上升沿,有时不能,如果这个时候恰巧要用中断服务子程序做些处理的话,就会出现当捕捉不到时,中断服务子程序就不会被正常调用而执行。以此文章特别匹配自己,即当涉及到采用何种方式触发中断时,应该向硬件工程师问清楚是何种触发!!原创 2015-08-29 11:37:55 · 1597 阅读 · 0 评论 -
ARM7 的中断寄存器的设置方法
pISR_EINT2 = (unsigned)Encoder_int; pISR_EINT4567 = (unsigned)Key_Interrupt; SerialInit(BAUD_RATE); //串行口初始化 rINTMSK &= ~(BIT_GLOBAL|BIT_URXD1|BIT_URXD0|BIT_EINT原创 2015-07-27 13:13:37 · 1639 阅读 · 0 评论 -
优先级反转
优先级反转 1、什么是优先级反转? 优先级反转是指一个低优先级的任务持有一个被高优先级任务所需要的共享资源。高优先任务由于因资源缺乏而处于受阻状态,一直等到低优先级任务释放资源为止。而低优先级获得的CPU时间少,如果此时有优先级处于两者之间的任务,并且不需要那个共享资源,则该中优先级的任务反而超过这两个任务而获得CPU时间。如果高优先级等待资源时不是阻塞等待,而是忙循环,则可能永远无法获原创 2015-07-07 15:58:22 · 675 阅读 · 0 评论 -
同时判断CPU是大端还是小端完全实现
联合体union的存放顺序是所有成员都从低地址开始存放 int main() { union _test { int a; short b; }test; test.a = 0x12345678; if(test.b == 0x1234) printf(“big”); if(test.b =原创 2015-07-08 16:51:06 · 512 阅读 · 0 评论 -
FS44BOXII的调试心得
FS44BOXII的调试心得1.拿到板子,若要进行恢复出厂设置,则需要重新烧写BIOS程序,首先将RS232串口来传输数据,若电脑主机没有RS232串口接口,则可采用USB转串口的方式实现,本人即采用这种方式。在该过程中,注意设置USB的COM通讯方式,目前本人采用COM4,如图所示: 2.同理,设置好DWN.EXE中对应的COM通讯端口为COM4,如下图所示: 注意:因为BIO原创 2015-06-02 12:11:30 · 852 阅读 · 0 评论 -
触摸屏工作方式
触摸屏原理触摸屏的原理网上有很多,一般由 4 层导电层构成,具体不介绍了,主要还是利用触摸控制模数转换芯片,通过电压切换并获取触摸点的电压值来实现触摸效果。主从之间的通讯原理采用 TSC2046 (也即 ADS7846) 和 ARM7 S3C44B0X 进行,其中 TSC2046 为从设备,ARM7 为主设备。TSC2046 做为触摸屏的 AD 转换器,如果有点击,按下等触摸事件将会以中断的方式通知原创 2016-08-06 15:44:06 · 746 阅读 · 0 评论