专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
神奇的bootloader !大神们进来看看!
2019-03-24 20:22
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
Atmel MCU
2654
4
1029
本帖最后由 285844685 于 2015-9-3 08:45 编辑
代码是往5922恒流led驱动里写数, 用jtag往里烧的时候都能正常运行,但是第三种写法用bootloader往里刷的程序就不能正常运行 ,上电后会卡死,程序跑飞。第一种写法用bootloader就正常。
复制代码
Program Memory Usage : 27030 bytes 19.4 % Full
Data Memory Usage : 1159 bytes 14.1 % Full
大神们帮看看是什么情况。
void TLC5922_WriteDC(unsigned char dc)
{
unsigned char i,j;
TLC5922_Mode_DC; //MODE = 1;
XTAL1_Output_is_Low; //XLAT = 0;
Sclk_Output_is_Low; //SCLK = 0;
Sin1_Output_is_Low; //SIN = 0;
for(i=0;i<112;i++) //每?个?led一°?个?dc字á?节¨2
{
for(j=0;j<7;j++) //dc_number范¤?围¡ì0~127 dc7bit依°¨¤次ä?串ä?行D写¡ä入¨?
{
Sclk_Output_is_Low; //SCLK = 0;
if((dc&0x40)==0x40)
{
Sin1_Output_is_Hig; //SIN = 1;
}
else if((dc&0x40)==0)
{
Sin1_Output_is_Low; //SIN = 0;
}
Sclk_Output_is_Low;
delay_us(1);
Sclk_Output_is_Hig;
delay_us(1);
Sclk_Output_is_Low;
dc <<= 1; //左ᨮ移°?一°?位?
}
dc=127; //下?一°?个?字á?节¨2
}
XTAL1_Output_is_Low;
XTAL2_Output_is_Low;
XTAL3_Output_is_Low;
XTAL4_Output_is_Low;
XTAL5_Output_is_Low;
XTAL6_Output_is_Low;
XTAL7_Output_is_Low;
delay_us(1);
XTAL1_Output_is_Hig;
XTAL2_Output_is_Hig;
XTAL3_Output_is_Hig;
XTAL4_Output_is_Hig;
XTAL5_Output_is_Hig;
XTAL6_Output_is_Hig;
XTAL7_Output_is_Hig;
delay_us(1);
XTAL1_Output_is_Low;
XTAL2_Output_is_Low;
XTAL3_Output_is_Low;
XTAL4_Output_is_Low;
XTAL5_Output_is_Low;
XTAL6_Output_is_Low;
XTAL7_Output_is_Low; //XLAT = 1//XLAT 高?电ì?平?将?点ì?校¡ê正y数oy据Y锁?存ä?到ì? 7Bit DC Register
delay_us(1);
}
void TLC5922_WriteDC(unsigned char dc)
{
unsigned char i,j;
unsigned char temp;
TLC5922_Mode_DC; //MODE = 1;
XTAL1_Output_is_Low; //XLAT = 0;
Sclk_Output_is_Low; //SCLK = 0;
Sin1_Output_is_Low; //SIN = 0;
temp=dc;
for(i=0;i<LED_NUMBER;i++) //每个led一个dc字节
{
for(j=0;j<7;j++) //dc_number范围0~127 dc7bit依次串行写入
{
Sclk_Output_is_Low; //SCLK = 0;
if((temp&0x40)==0x40)
{
Sin1_Output_is_Hig; //SIN = 1;
}
else if((temp&0x40)==0)
{
Sin1_Output_is_Low; //SIN = 0;
}
Sclk_Output_is_Low;
delay_us(1);
Sclk_Output_is_Hig;
delay_us(1);
Sclk_Output_is_Low;
temp <<= 1; //左移一位
}
temp=dc; //下一个字节
}
XTAL1_Output_is_Low;
XTAL2_Output_is_Low;
XTAL3_Output_is_Low;
XTAL4_Output_is_Low;
XTAL5_Output_is_Low;
XTAL6_Output_is_Low;
XTAL7_Output_is_Low;
delay_us(1);
XTAL1_Output_is_Hig;
XTAL2_Output_is_Hig;
XTAL3_Output_is_Hig;
XTAL4_Output_is_Hig;
XTAL5_Output_is_Hig;
XTAL6_Output_is_Hig;
XTAL7_Output_is_Hig;
delay_us(1);
XTAL1_Output_is_Low;
XTAL2_Output_is_Low;
XTAL3_Output_is_Low;
XTAL4_Output_is_Low;
XTAL5_Output_is_Low;
XTAL6_Output_is_Low;
XTAL7_Output_is_Low; //XLAT = 1//XLAT 高电平将点校正数据锁存到 7Bit DC Register
delay_us(1);
}
void TLC5922_WriteDC(unsigned char *dc)
{
unsigned char i,j;
TLC5922_Mode_DC; //MODE = 1;
XTAL1_Output_is_Low; //XLAT = 0;
Sclk_Output_is_Low; //SCLK = 0;
Sin1_Output_is_Low; //SIN = 0;
for(i=0;i<LED_NUMBER;i++) //每个led一个dc字节
{
for(j=0;j<7;j++) //dc_number范围0~127 dc7bit依次串行写入
{
Sclk_Output_is_Low; //SCLK = 0;
if((*dc&0x40)==0x40)
{
Sin1_Output_is_Hig; //SIN = 1;
}
else if((*dc&0x40)==0)
{
Sin1_Output_is_Low; //SIN = 0;
}
Sclk_Output_is_Low;
delay_us(1);
Sclk_Output_is_Hig;
delay_us(1);
Sclk_Output_is_Low;
*dc <<= 1; //左移一位
}
dc ++; //下一个字节
}
XTAL1_Output_is_Low;
XTAL2_Output_is_Low;
XTAL3_Output_is_Low;
XTAL4_Output_is_Low;
XTAL5_Output_is_Low;
XTAL6_Output_is_Low;
delay_us(1);
XTAL1_Output_is_Hig;
XTAL2_Output_is_Hig;
XTAL3_Output_is_Hig;
XTAL4_Output_is_Hig;
XTAL5_Output_is_Hig;
XTAL6_Output_is_Hig;;
delay_us(1);
XTAL1_Output_is_Low;
XTAL2_Output_is_Low;
XTAL3_Output_is_Low;
XTAL4_Output_is_Low;
XTAL5_Output_is_Low;
XTAL6_Output_is_Low;; //XLAT = 1//XLAT 高电平将点校正数据锁存到 7Bit DC Register
delay_us(1);
}
复制代码
此帖出自
小平头技术问答
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
285844685
2019-03-25 04:42
dcexpert 发表于 2015-9-3 09:57
不同用法在哪里?
就是一个是常值 一个是去数组里按地址取数
加载中...
查看其它4个回答
一周热门
更多
>
相关问题
相关文章
Arduino-每个人的微控制器
0个评论
一款由长短音密码控制的门禁密码锁的设计
0个评论
IAR Embedded Workbench for Atmel AVR 6.10 环境配置
0个评论
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
就是一个是常值 一个是去数组里按地址取数
一周热门 更多>