这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 企业专区 » Renesas » sacq的进程帖

共46条 5/5 |‹ 1 2 3 4 5 跳转至
高工
2012-09-25 21:58:28     打赏
41楼
1楼有正宗的,值得学习的原代码的链接。我的这段就不献丑了。

高工
2012-09-25 22:33:36     打赏
42楼

外接EEPROM的读写的实验 

IIC EEPROM的读写 有点难;在学习过几位童鞋的成功经验,几经努力,取得小收获。 

利用MCU-DIY 板上的24C02
接法:
24C02    MCU-DIY    RL78/G13   
WP         P10            GND 
SCL        P11           SCLA0  (P60,J1-17)
SDA        P12           SDAA0  (P61,J1-18)
GND                        GND
VCC                         VCC

在前次实验的基础上,数字拨码控制着LED的最大亮度,这个不变;增加一个在LED最大亮度是,把拨码数值(1字节)写入24C02;
LCD右侧显示的是当前拨码的数值,LCD左侧显示的是从24C02读到的数值。在LED到达最大亮度后,两个数值是一致的;
在断电后重新上电,左侧显示是断电前保存在24C02的数值。


使用了IICA0,Applilet3的相关设置如下:




 

在程序里,读写EEPROM的函数执行后,再加个延时是必须的。

在主程序里, 读:
         EEP_BUF[0]= 0X00 ;       //  EEPROM ADR
         IICA0_MasterSendStart(0XA0, EEP_BUF ,1,150);  // EEPROM WRITE
         DelayMs(3);
        
         IICA0_MasterReceiveStart(0XA0, EEP_BUF ,1,150);  // 读  到
       
         DelayMs(3);


写子程序:
 void Write_EEP(void)
{
      EEP_BUF[0]= 0X00 ;       //  EEPROM ADR
      EEP_BUF[1]= (P0 & 0X0F) ; // EEPROM DATA
      IICA0_MasterSendStart(0XA0, EEP_BUF ,2,150);  // EEPROM WRITE
      DelayMs(3);
}

来1张:



视频是必须的,上传、审核是需要时间的,楼下会有的。


高工
2012-09-25 23:58:41     打赏
43楼





数字拨码控制着LED的最大亮度。在LED最大亮度时,把拨码数值(1字节)写入24C02。
LCD右侧显示的是当前拨码的数值,LCD左侧显示的是从24C02读到的数值。
在LED到达最大亮度后,两个数值是一致的。
在断电后重新上电,左侧显示是断电前保存在24C02的数值。
更多详情见楼上。


高工
2012-10-21 17:03:25     打赏
44楼
N久没更新,不是没动作,只是试验的几个效果不理想,主要在国庆期间做的:
1)内部的数据FLASH读写,花了较多时间,最后程序编译通过了,运行结果不对。应该是资料还是没吃透;
2)uCOS-II移植做了,功能比较简单,控制LED的闪动,效果后面补上;
3)低功耗运行( HALT,STOP )不是复杂,苦于没有个好的“载体”,在某个环境条件下恰当地使用这2个指令。

高工
2012-10-22 17:59:59     打赏
45楼
谢谢小鱼的指导

高工
2012-10-28 20:53:50     打赏
46楼
 uCOS-II移植的实验 

菜鸟总能做个很基础的、很简单的任务——让板上的LED闪烁

建立一个任务App_TaskStart:


这个任务里最重要的只有一件事情:



上一行是调用Led 闪动函数(见下面)
下一行是延时,目前是1S



P7.7即LED的所在。

下载后运行正确。

共46条 5/5 |‹ 1 2 3 4 5 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]