00ad3807a15b001d19d1b339131f9a4e

来自「altera DE1 SD_CARD带写入一个扇区功能的程序」· 代码 · 共 66 行

TXT
66
字号
#include <stdio.h>
#include <unistd.h>
#include "system.h"

#define clk *(unsigned int*)PIO_CLK_BASE
#define dat *(unsigned int*)PIO_DATA_BASE

void wrPS(int C)
{
    int i,reg,cnt=0;
    (&clk)[1]=1;
    (&dat)[1]=1;
    dat=1;
    clk=0;
    usleep(102);
    dat=0;
    clk=1;
    (&clk)[1]=0;
    reg=0x200+C;
    usleep(50);
    for(i=0;i<10;i++)
    {
        while(clk);
        dat=reg%2;
        cnt+=dat;
        if(8==i) dat=!(cnt%2);
        reg>>=1;
        usleep(50);
    }
    usleep(100);
    (&dat)[1]=0;
}


int main()
{
  printf("Hello from Nios II!\n");
    int i,reg;
//    while(1)
//    {
//    wrPS(0xff);
//    usleep(1000000);
//    }
    //wrPS(0xff);

    (&clk)[1]=0;
    (&dat)[1]=0;
    while(1)
    {
        while(clk);
        reg=0;
        usleep(50);
        for(i=0;i<8;i++)
        {
            while(clk);
            reg>>=1;
            if(dat) reg+=0x80;
            usleep(50);
        }
        usleep(200);
        printf("%x\n",reg);
        usleep(100);  
    }
  return 0;
}

⌨️ 快捷键说明

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