*timer->cwaddr 和 timer->pgm的区别,同样是结构成员,咋就不一样呢

[复制链接]
查看11 | 回复1 | 2009-6-8 21:24:51 | 显示全部楼层 |阅读模式
static struct tmrtab { BytePtr caddr; BytePtr cwaddr; unsigned mask; unsigned pgm; }
tmrtab[] = {

{ Timer10,
Timer1Control,TMR10DONE,TMR10PRG
},
{ Timer11,
Timer1Control,TMR11DONE,TMR11PRG
},
{ Timer12,
Timer1Control,0,
TMR12PRG
},
{ Timer20,
Timer2Control,TMR20DONE,TMR20PRG
},
{ Timer21,
Timer2Control,TMR21DONE,TMR21PRG
},
{ Timer22,
Timer2Control,TMR22DONE,TMR22PRG
},
{ Timer11,
Timer1Control,TMR11DONE,TMR11PRG
},
{ Timer30,
Timer3Control,0,
TMR30PRG
},
{ Timer31,
Timer3Control,0,
TMR31PRG
},
{ Timer32,
Timer3Control,0,
TMR32PRG
}
};
....
...
...
void StartTimer(
register int tid,
/* timer id # */
register unsigned n)
/* # of 0.1ms ticks */
{
register struct tmrtab *timer;
timer = tmrtab+tid;
*timer->cwaddr = timer->pgm;
/* program timer
*/
*InterruptReg = ~timer->mask;
/* clear the timer "done" bit */
*timer->caddr = LSB(n);
/* load count, starting the timer */
*timer->caddr = MSB(n);
}

...........
.........
.....

回复

使用道具 举报

千问 | 2009-6-8 21:24:51 | 显示全部楼层
*timer->cwaddr 和 timer->pgm的区别,同样是结构成员,咋就不一样呢是你理解不一样而已timer->pgm好理解*timer->cwaddr如果我写成 *(timer->cwaddr)你能理解吗?...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行