?? 0079c0592d0c001c1fed9e706ca185c4
字號:
#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[13] = {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 + -