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

共61条 2/7 1 2 3 4 5 6 ›| 跳转至
院士
2012-08-25 15:23:10     打赏
11楼
systemInit()不需要在main函数里再次调用。那个是MCU在初始化时使用的,是启动代码里的一部分内容。

解决办法:直接删除即可。

高工
2012-08-25 20:40:38     打赏
12楼

外部IO中断还没有进展
先试了试利用Applilet实现串口通信 
当我发送密码 ww 的时候 打印输出Hello!
貌似默认使用中断实现的
Applilet截图




同时我外接了一个USB转串口 和 J6 J7的3脚 相连 GND相连  实现在IAR中的串口调试



群上讨论说在发送多个字符的时候要加延时 我的没加 也能跑 
主要修改代码

main函数
void  main(void)
{
 /* Start user code. Do not edit comment generated here */
   // systeminit();
 // 串口9600的波特率会影响到 SPS1 = _0004_SAU_CK00_FCLK_4 | _0040_SAU_CK01_FCLK_4;
 // 例子给的GUI Demo SPS1 = _0002_SAU_CK00_FCLK_2 | _0020_SAU_CK01_FCLK_2;
 // 发送和接收都是用中断方式
 PORT_ChangeP77Output(0);
 UART2_Start();
 UART2_SendData("Please input the password!\r\n", 28); 
 UART2_ReceiveData(RxBuff,2);
 while (1U)
 {
    // delay(100);
  //
  // UART2_SendHello();
 }
 /* End user code. Do not edit comment generated here */
}

UART2_ReceiveEndCallback 函数
void UART2_ReceiveEndCallback(void)
{
 /* Start user code. Do not edit comment generated here */
   if(RxBuff[0] == 'w' && RxBuff[1] == 'w')
    UART2_SendHello();
 // 重新开始接收数据
 UART2_ReceiveData(RxBuff,2);
 /* End user code. Do not edit comment generated here */
}
代码地址 myComTrans.rar

目前不知道如何实现查询方式


菜鸟
2012-08-25 21:43:55     打赏
13楼
至少我是觉得其接收函数写得不合理。

高工
2012-08-25 23:12:41     打赏
14楼
学习了的RL78/G13 Stick User Manual 的
Chapter 7  How to Use the Renesas Flash Programmer Software
进行RFP下载




将Debug调试好的工程设置为Releae


针对没有输出hex文件的问题 修改工程的"Options"


在 Flash Programmer Software 中选择需要下载的hex文件




点击Start开始下载


下载成功


菜鸟
2012-08-26 10:42:51     打赏
15楼
不建议将编译版本更改为 release版本。
貌似使用release版本后,flash 就只能擦除后才能再次使用。而使用debug版本一样能生成正确的hex文件。

高工
2012-08-26 11:03:43     打赏
16楼

恩 确实是这样子的 
用了release 之后 我的TK 和 EI 都没法调试了
只好用 RFP 清除flash


菜鸟
2012-08-26 14:46:14     打赏
17楼
嘿嘿,慢慢来。大家都是从菜鸟一步一步走过来的~~

楼主勤问的态度 是灰常值得肯定的。

高工
2012-08-27 17:41:09     打赏
18楼

实现了每隔1s 采集电位器上电压 和 内部温度传感器 
并通过串口发送出去
Applilet的设置和 andery88 的基本相同

先给个截图

主要代码参考了 官方的 GUI Demo Source Code
同时由于我没是吸纳printf函数 只好自己编写了用于打印整数和打印2位小数的函数
void SendUCHAR(UCHAR x);
void Send2BitFract(UCHAR x);
我用瑞萨自动生成的串口输出函数老是失败 只好自己写了个串口发送函数

// 定义一个串口发送状态的bit位
#define TSF10 (SSR10 & 0x40)
// 自己写的串口发送函数
MD_STATUS ww_UART2_SendData(UCHAR* txbuf, USHORT txnum)
{
   int i =0;
 MD_STATUS status = MD_OK;

 if (txnum < 1U)
 {
  status = MD_ARGERROR;
 }
 else
 {
    STMK2 = 1U; /* disable INTST2 interrupt */
  for(i = 0; i<txnum; i++)
  { 
     while(TSF10)
   {
    NOP();
   } 
   TXD2 = txbuf[i];
  }
  while(TSF10)
  {
    NOP();
  }
  STMK2 = 0U; /* enable INTST2 interrupt */
 }

 return (status);
}

主函数
void  main(void)
{
 /* Start user code. Do not edit comment generated here */
    TAU0_Channel0_Start();
 STIF2 = 0;
 UART2_Start();
 while (1U)
 {
  
    if(timerflag == 1)
    {
     timerflag = 0;
   
   
     // 启动一次AD转换 内部参考电压 外部电压 温度传感器
     GetVolTemp();
   // 转换电压及温度
   TransVolTemp();
   
   // 通过串口发送出去 注意这次的串口波特率为19200
   // 将结果转换成串口的结果发送出去

   ww_UART2_SendData("Voltage: ", 9);
   // 转换电压整数部分发送
   SendUCHAR(extVoltage_int);
   // 发送小数点
   while(TSF10)
   {
      NOP();
   } 
   UART2_SendData(".", 1);
   // 转换电压小数部分发送
   Send2BitFract(extVoltage_fract);
   ww_UART2_SendData("\r\n", 2);  
   
   ww_UART2_SendData("Temp: ", 6);
   // 转换温度整数部分发送 temp_int
   SendUCHAR(temp_int);
   // 发送小数点
   while(TSF10)
   {
      NOP();
   } 
   UART2_SendData(".", 1); 
   // 转换温度小数部分发送
   Send2BitFract(temp_frac);
   ww_UART2_SendData("\r\n\r\n", 4);   
    }
  else
   NOP();
 }
 /* End user code. Do not edit comment generated here */
}

视频还不会录
代码再修改下上传


高工
2012-08-28 01:16:04     打赏
19楼
实现定时器每隔0.5s 跑马灯
利用了P2口 代码如下

int RunDirect = 0; // 移动方向

main函数

void  main(void)
{
 /* Start user code. Do not edit comment generated here */
   UCHAR LEDS = 0xFE;  // 先点亮一个灯
 TAU0_Channel0_Start();
 while (1U)
 {
  if(timerflag)
  {
     P2 = LEDS;
   if(RunDirect)
   {
     LEDS >>= 1;
     LEDS |= 0x80;
     if(LEDS == 0xFF) // 0b11111111
    {
     LEDS = 0xFD; // 0b11111101
     RunDirect = 0;
    }
   }
   else
   {
      LEDS <<= 1;
    LEDS |= 0x01;
    if(LEDS == 0xFF) // 0b11111111
    {
     LEDS = 0xBF; // 0b10111111
     RunDirect = 1;
    }    
   }
   
   timerflag = 0;
  }
  else
  {
     NOP();
  }
 }
 /* End user code. Do not edit comment generated here */
}

代码: myRunLEDs.rar

图片等我找个相机
先传一个调试的截图


补充一句 
在初始化P2口之后 
要记得在main函数中加入一句话 
 // very important !!
 ADPC = _01_ADPC_DI_ON;
否则输出电平有问题
之前没有实际调试 没发现这个这问题
传张照片


视频地址:http://union.bokecc.com/flash/single/290666218ACBA694_BEDD22B7CA18F39D_false_EEA982EE6B20F4D1_1/player.swf

院士
2012-08-28 13:44:29     打赏
20楼
顶一个。                        

共61条 2/7 1 2 3 4 5 6 ›| 跳转至

回复

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