PengPeng0419 发表于 2008-3-31 00:42:47

问一个AVR单片机关于传送数据的问题

如果我定义了一个下面的变量
unsigned long int dds_no;
而我想把这个变量的内容以8位并行数据的形式传送给DDS芯片,可是这个4字节的频率控制字我需要分4次传送,每次传送需要用其他I/O口模拟数字逻辑脉冲来锁定这一数据,请问我应该如何操作.

可以将dds_no 赋值给另一个变量来实现吗?比如:
unsined char i;
unsigned long int dds_no;
unsigned char dds_temp;
for(i=0;i<4;i++)
{
dds_temp=dds_no>>(24-8*i);
}
这样可以实现吗?还是需要用其他的方法??

machao 发表于 2008-3-31 09:48:16

最好的方法是:将1个4个字节的dds_no与1个4个元素的char数组定义成共同体使用,看看C的书.

PengPeng0419 发表于 2008-3-31 12:44:41

谢谢马老师~!~!我以前是用51的汇编的,现在刚开始用AVR,从来没用过共用体这种格式,您看我这样定义是对的吗?
   
    union dds
      {
       unsigned long int fqcwd;
       unsigned char temp;
       }dds;
   void main(void)
   { DDRB=0xff;
       PORB=0xff;
       unsigned char i;
       dds.fqcwd=0x3f564812;
       for(i=3;i>=0;i--)
         {
         PORTB=dds.temp;
          }
      

   }

PengPeng0419 发表于 2008-3-31 12:59:43

还有一个问题,12864的液晶显示问题,我可不可以只显示一列中的某一个点后就退出程序呢?因为我想做扫频仪,利用12864点阵液晶作显示,所以想尽量加快程序运行速度~!~!不知道这样可不可行~!~!
页: [1]
查看完整版本: 问一个AVR单片机关于传送数据的问题