-
看了一下LZ的代码,你的目的是:
有一个30个元素组成的数组Sin_Table,数组每个元素是32位的。低16位存储的是以后更新TIM1_CCR1的值;高16位存储的是以后更新TIM1_CCR2的值。
在每次TIM1的update event,触发DMA传输,这个DMA是把数组每个元素的,低/高各16位数据分别传给TIM1_CCR1/CCR2。
首先,DMA的外设地址寄存器设置错了,应该是TIM1_DMAR_Address!
其次,DMA的初始化结构中的BufferSize设置,这里是30,你改成30*2=60。
另外,最好你还是按照u16来定义Sin_Table[30*2];否则在大端/小端的不同平台上,可能CCR1被更新成了高16位;CCR2又被更新成了低16位。
-
有点不准确,以这个为准。谢谢。临时画得,因为在方案论证阶段。
sch2.PDF (409 KB)
下载次数:49
2010-9-6 17:54
-
不必要吧,如果电池供电产品也还在电池之间串个电阻..?
-
绑定了,没有用过,也没有研究过的路过。
-
按照人家的电路看懂后 改造成自己的就行
-
没有后缀名 截了图片
-
驱动开发,是最底层的程序,比如串口、LCD、触摸屏、SD卡等等这些直接驱动硬件的程序,叫驱动,那么当然对这些程序就叫做驱动开发,嵌入式开发是一个很广泛的定义,可以理解为任何一个在嵌入式装置上开发的系统,都叫做嵌入式开发,一般主要是指应用程序的开发,有两种情况,一个是在有操作系统下的开发,另一个就是裸机下开发。。。不要想的那么复杂,就是这些概念。希望对你有帮助
-
我继续调调板子了,被坏块管理折腾了。。。555
-
感谢苹果的提示,苹果,你用的是ov9650吗 cfanlwn的说的很对,不过寄存器不是设定的那个值
0x1e 设为 0x10, 前后反向; 0x1e设为 0x20表示左右反向,跟照镜子似的,所以给分,苹果cfanlwn 10分
kyzf 就给你1分了,我自己9分。
注意:在ov9650的驱动里调试 ov9650的SCCB address 0x60, product ID 0x9652, expect 0x9650
解决了,还有一个问题,就是视频显示的延迟很大,不知道怎么解决。。。。。重新弄个帖子吧
-
目前用C++的统计结果是30,C#的统计结果是7.
有最新的结果我会更新这个贴的.
-
俺用过cp2102
-
那MCU与7407的引脚可以直接连了,但3.3伏引脚与5伏引脚电平高低不一样啊
-
是遥控器上的吧。。确定是晶体振荡器吗?接 XT1 还是XT2上拉。
-
鄙视下自己:
竟然没注意这个信息:
FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x0!!
继续追下,多谢大家的帮助了。
-
谢谢楼上的,我试试看
-
有点麻烦了,呵呵
两个方法
1. 把storage manager的代码移植到bsp下,然后调试fat mount那段代码
2. 或者build一个debug 版的image,从log信息找到出问题的地方
-
这个你问下91吧,帮你顶下,顺便也学习一下,我只是看过一些这方面的协议,也没有具体去做!
-
是不是没连地线啊?
-
#include
#include
#define uchar unsigned char
#define uint unsigned int
uchar chrec;
bit brec;
void commini (void) //串口初始化
{
SCON = 0x50; //01010000 //方式1,允许接收
TMOD |= 0x21; //8位自动装入常数的定时器
TH1 = 0xfd; //波特率产生器自动装入常数
TR1 = 1; //T1开始运行
ES = 1; //打开串口中断
EA=1; //打开全局中断
}
putbyte(unsigned char c) //放入一个字节到发送缓冲区
{
SBUF=c;
while(!TI);TI=0;
}
void putstring(uchar *puts) //发送一个定义在程序存储区的字符串到串口
{
for(;*puts!=0;puts++) //遇到停止符0结束
putbyte(*puts);
}
void serial () interrupt 4 //串口中断处理
{
if (RI)
{
RI = 0;
brec=1;
chrec=SBUF;
SBUF=chrec;
}
}
uchar code arrhex[]={"0123456789ABCDEF"};
void LCM1602 (uchar ch) //以十六进制显示从PC接收到的数据
{ uchar cht;
cht=ch%16;
lcdchar (13,1,arrhex[cht]);
cht=ch/16;
lcdchar (12,1,arrhex[cht]);
}
void main ()
{
commini (); //串口初始化
lcdreset(); //LCM初始化
lcdwda(0,0,"ZC-51 comm. Exp.");
lcdwda(0,1," rec. char: ");
putstring("ZC-51 communications Exp.");
while (1)
{
if (brec)
{ brec=0;
LCM1602 (chrec); //以十六进制显示从PC接收到的数据
}
}
}
#include
#include
sbit RSPIN = P1^0; //数据/命令选择端
sbit RWPIN = P1^1; //读写控制信号
sbit EPIN = P1^2; //使能信号
unsigned char XPOS,YPOS;
unsigned char chbuff;
void delay1(unsigned int t) //延时
{ unsigned int i,j;
for(i=0;i
-
sss