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

📄 hello_led.c

📁 应用于nios中的FIFO程序及连接图
💻 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 + -