原创 ADE7758 SPI 软件模拟

2008-9-9 09:11 3492 5 6 分类: 软件与OS

void SpiSentByte(U08 bb)
{
   U08 i;


   for(i=0;i<8;i++){
  SCK=1;
  CpuDelayUS(20);
  if((bb&0x80)==0)
     MOSI="0";
   else
     MOSI="1";
    bb<<=1; 
  CpuDelayUS(20); 
  SCK=0;
  CpuDelayUS(20);
 }



U08 SpiReceiveByte(void)
{
 U08 i,bb=0;


 for(i=0;i<8;i++){
   SCK="1";
  CpuDelayUS(20);
  bb<<=1;
    if (MISO==1)
        bb|=0x01;
  CpuDelayUS(20);
  SCK=0;
  CpuDelayUS(20);
 
 }
   return bb;
}


void Enable7758(void)
{       


 CS=0;
 SCK=1;
    CS="0";



void Disable7758(void)
{
 CS=1;
 SCK=1;
 CS=1;
}
  
void Read7758(U08 addr, U08 *pnt,U08 cnt)
{
 U08 i;
 Enable7758();
 SpiSentByte(addr);
 CpuDelayUS(4);
 for(i=0;i<cnt;i++)
       *pnt++=SpiReceiveByte();
    Disable7758();


}


void Write7758(U08 addr,U08 *pnt,U08 cnt) 
{
 U08 i;
 Enable7758();
 SpiSentByte(addr|0x80);
    for(i=0;i<cnt;i++) SpiSentByte(*pnt++);
 Disable7758();
}

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户461316 2008-9-9 19:50

对做电表的不错!!!
相关推荐阅读
用户161430 2008-07-29 08:22
pl语言学习
#!/usr/bin/perl -w# USE: $0  SourcePath  DestPath# Sample: o2.pl d:\soft\bin\1 d:\soft\bin\2use stri...
用户161430 2008-07-29 08:14
光大银行的客户交易流水表程序
                                                          *    Description      : 光大银行日终程序----商户交易流水...
用户161430 2008-07-29 08:11
开发通用软件程序的模板开发
#include <stdlib.h>#include "p_len.h"#include "p_inner.h"#include "p_define.h"#include "p_stru...
用户161430 2008-07-25 09:05
嵌入式dsp的指针取地址
#define LED (*(unsigned short int *)0x180000)#define SRAM_Base_Adress  (*(unsigned short int *)0x200...
用户161430 2008-07-23 10:18
DSP在fllash仿真运行模式
dsp在falsh下仿真运行,首先第一先把程序烧写进flash里面,然后照图的设置设,点击execute operation就可以运行了。 ...
EE直播间
更多
我要评论
1
5
关闭 站长推荐上一条 /3 下一条