裸奔程序和uCOS读取DM9000 ID的方法
在程序中调用下面这段代码可以读到DM9000的ID号:
#define DM9000_BASE 0x20000300
#define DM9000_DATA_OFFSET 4
static U8 dm9000_ior(int reg)
{
*(volatile U8 *)DM9000_BASE = reg;
return *(volatile U8 *)(DM9000_BASE+DM9000_DATA_OFFSET);
}
static void rd_dm9000_id(void)
{
U16 id;
id = dm9000_ior(0x28) | (dm9000_ior(0x29)<<8);
printf(“read dm9000 vid = 0x%x\n”, id);
id = dm9000_ior(0x2a) | (dm9000_ior(0x2b)<<8);
printf(“read dm9000 pid = 0x%x\n”, id);
id = dm9000_ior(0x8) | (dm9000_ior(0x9)<<8);
printf(“read dm9000 reg(0x09,0x08) = 0x%x\n”, id);
printf(“dm9000 isr = 0x%x\n”, dm9000_ior(0xfe));
}
本主题由 亚瑟王 于 2010-5-10 15:36 解除高亮
管理员
亚瑟王 当前在线
- UID
- 5
- 4716
- 1
- 6246
- 200
- 294 小时
- 2009-3-5
- 2010-6-12
帖子
精华
积分
阅读权限
在线时间
注册时间
最后登录
管理员
亚瑟王发表于 2010-5-10 18:05 | 只看该作者
<***************************************>
TQ2440 Test Program
www.embedsky.net
<***************************************>
read dm9000 vid = 0xa46
read dm9000 pid = 0x9000
read dm9000 reg(0x09,0x08) = 0x3837
dm9000 isr = 0x0
Please select function :
0 : Please input 1-11 to select test
1 : Test PWM
2 : RTC time display
3 : Test ADC
4 : Test interrupt and key scan
5 : Test Touchpanel
6 : Test TFT LCD
7 : Test IIC EEPROM
8 : UDA1341 play music
9 : UDA1341 record voice
10 : Test SD Card
11 : Test CMOS Camera
上面列出来实际运行时获取的DM9000的ID号,将1楼的代码放到TQ2440_Test程序的main.c中,然后在main()函数中的“MMU_init();”上面一行添加rd_dm9000_id();即可读取正确的ID号。
转载于:https://www.cnblogs.com/xilentz/archive/2010/07/12/1775546.html
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/110756.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...