DE2-70 보드에서 LED Shift Blink 프로그램
잠깐 일이 있어서 테스트 프로그램을 작성하던 중 간단하게
만든 프로그램이다 무한루프로 계속 LED가 점등돼게 해놨다.
==========================================================================
#include <stdio.h>
#include <system.h>
#include "system.h"
#include "sys/alt_sys_init.h"
#include "sys/alt_irq.h"
#include "sys/alt_flash.h"
#include "sys/alt_flash_dev.h"
#include "sys/alt_timestamp.h"
#include "sys/alt_dev.h"
#include "alt_types.h"
#include "sys/alt_stdio.h"
#include "sys/ioctl.h"
#include "altera_avalon_lcd_16207.h"
#include "altera_avalon_uart.h"
#include "altera_avalon_cfi_flash.h"
#include <stddef.h>
#include <string.h>
#include <io.h>
#include <fcntl.h>
int main()
{
/* DE2-70은 RED LED가 0~17까지 18개이다. 그래서 4bytes 의 Register를 쓴다.
* 그중 3바이트 째의 다른 값은 안쓰고 초기 2bit만 사용한다. */
while(1){
IOWR(PIO_RED_LED_BASE, 0 ,0x0000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0000);
usleep(300000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0001);
usleep(300000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0002);
usleep(300000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0004);
usleep(300000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0008);
usleep(300000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0010);
usleep(300000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0020);
usleep(300000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0040);
usleep(300000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0080);
usleep(300000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0100);
usleep(300000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x0001);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x0002);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x0004);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x0008);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x0010);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x0020);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x0040);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x0080);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x0100);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x0200);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x0400);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x0800);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x1000);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x2000);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x4000);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x8000);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x10000);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x20000);
usleep(300000);
};
printf("Hello from Nios II!\n");
return 0;
}