⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 f03f285e2d0c001c1fed9e706ca185c4

📁 This designs uses a Nios II system to demonstrate how to read from the SD card. The software reads W
💻
字号:

#include "basic_io.h"
#include "LCD.h"
#include "SD_Card.h"
#include <math.h>

int main(void)
{

typedef unsigned char bit;
typedef unsigned char byte;
typedef unsigned short u16;
    
typedef union {
    u16 val;
    struct {
        u16 bit0 : 1;
        u16 bit1 : 1;
        u16 bit2 : 1;
        u16 bit3 : 1;
        u16 bit4 : 1;
        u16 bit5 : 1;
        u16 bit6 : 1;
        u16 bit7 : 1;
        u16 bit8 : 1;
        u16 bit9 : 1;
        u16 bit10 : 1;
        u16 bit11 : 1;
        u16 bit12 : 1;
        u16 bit13 : 1;
        u16 bit14 : 1;
        u16 bit15 : 1;
    } bits;
} CRCREGS;
    
CRCREGS regs;
    
// 初始化CRC寄存器组:移位寄存器置为全"1"
void crcInitRegisters()
{
    regs.val = 0xffff;
}
       
// 输出CRC码(寄存器组的值)
u16 crcGetRegisters()
{
    return regs.val;
}

//crcInputBit中一步一步的移位/异或操作,可以进行简化:

void crcInputBit(bit in)
{
    bit a;
    a = regs.bits.bit0 ^ in;
    regs.val >>= 1;
    if(a) regs.val ^= 0x8408;
}

 byte ppp[256] = {0xFF, 0x03, 0xC0, 0x21, 0x04, 0x03, 0x00, 0x07, 0x0D, 0x03, 0x06, 0x00, 0x00};
    int i,j;
    u16 result;
    
   
    
    // 初始化
    crcInitRegisters();
    
    // 逐位输入,每个字节低位在先,不包括两个FCS字节
    for(i = 0; i < 11; i++)
    {
        for(j = 0; j < 8; j++)
        {
            crcInputBit((ppp[i] >> j) & 1);
        }
    }
    
 
    result = ~crcGetRegisters();
    

    ppp[11] = result & 0xff;
    ppp[12] = (result >> 8) & 0xff;
  
  
  
  //UINT16 i=0,Tmp1=0,Tmp2=0;

  /*UINT32 j=720;

  BYTE Buffer[512]={0};
  
  BYTE Buffer1[512]={1,2,3,4,5,6,7};
  SD_card_init();
  LCD_Test();
  SD_write_lba(Buffer1,j,1);
  
    
    
    SD_read_lba(Buffer,j,1);
  
  /*while(1)
  {
    
    SD_read_lba(Buffer,j,1);
    
    while(i<512)
    {
      if(!IORD(AUD_FULL_BASE,0))
      {
        Tmp1=(Buffer[i+1]<<8)|Buffer[i];
        IOWR(AUDIO_0_BASE,0,Tmp1);
        i+=2;
      }
    }
    if(j%64==0)
    {
      Tmp2=Tmp1*Tmp1;
      IOWR(LED_RED_BASE,0,Tmp2);
      IOWR(LED_GREEN_BASE,0,Tmp1);
    }
    IOWR(SEG7_DISPLAY_BASE,0,j);
    j++;
    i=0;
  }*/
 printf("successful");
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -