• «
  • 1
  • 2
  • »
  • Pages: 1/2     Go
主题 : 求助:mini2440不能调用子函数 复制链接 | 浏览器收藏 | 打印
向高手学习嘿嘿O(∩_∩)O~
级别: 新手上路
UID: 19433
精华: 0
发帖: 24
金钱: 120 两
威望: 24 点
综合积分: 48 分
注册时间: 2010-04-19
最后登录: 2010-11-06
楼主  发表于: 2010-04-21 19:32

 求助:mini2440不能调用子函数

我自己写了一个小程序,中间调用了一个延时函数,可以编译通过,但是运行不出结果;去掉延时函数就可以运行出结果,这个是啥毛病啊
级别: 新手上路
UID: 13314
精华: 0
发帖: 16
金钱: 80 两
威望: 16 点
综合积分: 32 分
注册时间: 2010-01-22
最后登录: 2010-07-13
1楼  发表于: 2010-04-21 22:30
楼主,你应该把你的程序贴上来呀,不然我们怎么知道哪里出问题了
向高手学习嘿嘿O(∩_∩)O~
级别: 新手上路
UID: 19433
精华: 0
发帖: 24
金钱: 120 两
威望: 24 点
综合积分: 48 分
注册时间: 2010-04-19
最后登录: 2010-11-06
2楼  发表于: 2010-04-22 09:28
//***************************************************
#include "def.h"
#include "option.h"
#include "2440addr.h"    
#include "2440lib.h"
#include "2440slib.h"  
//#include "2440init.s"    
//================================
#define GPB5_out    (1<<(5*2))   //led1
#define GPB6_out    (1<<(6*2))   //led2
#define GPB7_out    (1<<(7*2))   //led3
#define GPB8_out    (1<<(8*2))   //led4
#define GPB1_Timer  (0x2<<(1*2))

void Yanshi(U32 tt);

int Main()
{      
    rGPBCON=GPB5_out|GPB6_out|GPB7_out|GPB8_out;//|GPB1_Timer;
    while(1)
    {
    rGPBDAT=(rGPBDAT|(0xfff))&(~(1<<6));//&= ~(1<<5);
    Yanshi(200) ;
    rGPBDAT|=(1<<6);//(rGPBDAT|(0xfff))&(~);//&= ~(1<<5);
        Yanshi(200) ;
    }
    return 0;    
}
void Yanshi(unsigned int tt)
{
  U32 i;
  for(;tt>0;tt--)
  { for(i=0;i<10000;i++){}
  
   }
}

b口的第6口接led等,低电平亮,单步运行或全速运行led灯都可以闪烁,但下载到板子上就不亮灯,这是怎么回事啊?
勺饮不器盛沧海,拳石频移磊泰山
级别: 侠客
UID: 15752
精华: 0
发帖: 71
金钱: 355 两
威望: 71 点
综合积分: 142 分
注册时间: 2010-03-09
最后登录: 2010-10-19
3楼  发表于: 2010-04-22 09:53
小弟愚见:您的参数类型不一致吧,可以考虑利用myled参考例程的dely()函数,延时函数只是程序执行空操作而已。
勺饮不器盛沧海,拳石频移磊泰山
向高手学习嘿嘿O(∩_∩)O~
级别: 新手上路
UID: 19433
精华: 0
发帖: 24
金钱: 120 两
威望: 24 点
综合积分: 48 分
注册时间: 2010-04-19
最后登录: 2010-11-06
4楼  发表于: 2010-04-22 10:47

 回 3楼(云鹤九霄) 的帖子

我刚才试了,还是不行啊
级别: 骑士
UID: 9169
精华: 0
发帖: 249
金钱: 1330 两
威望: 299 点
综合积分: 498 分
注册时间: 2009-09-19
最后登录: 2017-08-14
5楼  发表于: 2010-04-22 11:16
计算一下延时时间!太短,当然看不出结果。
向高手学习嘿嘿O(∩_∩)O~
级别: 新手上路
UID: 19433
精华: 0
发帖: 24
金钱: 120 两
威望: 24 点
综合积分: 48 分
注册时间: 2010-04-19
最后登录: 2010-11-06
6楼  发表于: 2010-04-22 13:55

 回 5楼(libailiang) 的帖子

试过了,与延时时间没关系
级别: 新手上路
UID: 19401
精华: 0
发帖: 4
金钱: 20 两
威望: 4 点
综合积分: 8 分
注册时间: 2010-04-19
最后登录: 2010-04-23
7楼  发表于: 2010-04-22 17:19
建议楼主这样试一下:

void led_on()
{
     rGPBDAT=(rGPBDAT|(0xfff))&(~(1<<6));//&= ~(1<<5);
    Yanshi(200) ;
    rGPBDAT|=(1<<6);//(rGPBDAT|(0xfff))&(~);//&= ~(1<<5);
       Yanshi(200) ;
}

int Main()
{      
    rGPBCON=GPB5_out|GPB6_out|GPB7_out|GPB8_out;//|GPB1_Timer;
    while(1)
    {
           led_on();
    }
    return 0;    
}
向高手学习嘿嘿O(∩_∩)O~
级别: 新手上路
UID: 19433
精华: 0
发帖: 24
金钱: 120 两
威望: 24 点
综合积分: 48 分
注册时间: 2010-04-19
最后登录: 2010-11-06
8楼  发表于: 2010-04-23 11:05

 回 7楼(lanlovehua) 的帖子

试过了,还是不行,程序就是固化不进去
级别: 新手上路
UID: 19401
精华: 0
发帖: 4
金钱: 20 两
威望: 4 点
综合积分: 8 分
注册时间: 2010-04-19
最后登录: 2010-04-23
9楼  发表于: 2010-04-23 11:55
固化不进去?是不是应该检查一下硬件的原因?
  • «
  • 1
  • 2
  • »
  • Pages: 1/2     Go