📄 hello_led.c
字号:
#include "system.h"
#include "altera_avalon_pio_regs.h"
#include "alt_types.h"
#include <stdio.h>
int main (void) __attribute__ ((weak, alias ("alt_main")));
int alt_main (void)
{
volatile int i,ad_data,f_flag,e_flag;
ad_data=0;
f_flag=0;
e_flag=0;
IOWR_ALTERA_AVALON_PIO_DATA(PIO_WRREQ_BASE, 0);
IOWR_ALTERA_AVALON_PIO_DATA(PIO_RDREQ_BASE, 0);
printf("Start sampling...\n");
/*
* Infinitely shift a variable with one bit set back and forth, and write
* it to the LED PIO. Software loop provides delay element.
*/
while (1)
{
IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED_BASE, 1);
IOWR_ALTERA_AVALON_PIO_DATA(PIO_WRREQ_BASE, 1);
while(1)
{
f_flag=IORD_ALTERA_AVALON_PIO_DATA(PIO_FULL_BASE);
if(f_flag==1)
break;
}
IOWR_ALTERA_AVALON_PIO_DATA(PIO_WRREQ_BASE, 0);
printf("Have finished sample!\n");
IOWR_ALTERA_AVALON_PIO_DATA(PIO_RDREQ_BASE, 1);
/*Printf the sampled data.*/
while(1)
{
e_flag=IORD_ALTERA_AVALON_PIO_DATA(PIO_EMPTY_BASE);
if(e_flag==1)
break;
IOWR_ALTERA_AVALON_PIO_DATA(PIO_RDCLK_BASE, 0);
IOWR_ALTERA_AVALON_PIO_DATA(PIO_RDCLK_BASE, 1);
ad_data=IORD_ALTERA_AVALON_PIO_DATA(PIO_AD_IN_BASE);
printf("%d\n",ad_data);
}
IOWR_ALTERA_AVALON_PIO_DATA(PIO_RDREQ_BASE, 0);
printf("Have finished printf!\n");
1
i = 0;
while (i<1000000)
i++;
IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED_BASE,0);
i = 0;
while (i<1000000)
i++;
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -