#include #include #include #define MenuCase(letter,proc) case letter:proc; break; #include "sys/alt_stdio.h" /*********************************************************/ void TimerUp() { unsigned int StartTimerUp; StartTimerUp = 1; IOWR_ALTERA_AVALON_PIO_DATA(PIO_OPERATION_BASE, StartTimerUp); } void TimerDown() { unsigned int StartTimerDown; StartTimerDown = 5; IOWR_ALTERA_AVALON_PIO_DATA(PIO_OPERATION_BASE, StartTimerDown); } void ShiftRight() { unsigned int StartShiftRight; StartShiftRight = 9; IOWR_ALTERA_AVALON_PIO_DATA(PIO_OPERATION_BASE, StartShiftRight); } void ShiftLeft() { unsigned int StartShiftLeft; StartShiftLeft = 13; IOWR_ALTERA_AVALON_PIO_DATA(PIO_OPERATION_BASE, StartShiftLeft); } void ShiftLeft2() { unsigned int StartShiftLeft2; StartShiftLeft2 = 17; IOWR_ALTERA_AVALON_PIO_DATA(PIO_OPERATION_BASE, StartShiftLeft2); } void ShiftLeft4() { unsigned int StartShiftLeft4; StartShiftLeft4 = 21; IOWR_ALTERA_AVALON_PIO_DATA(PIO_OPERATION_BASE, StartShiftLeft4); } void ShiftLeft8() { unsigned int StartShiftLeft8; StartShiftLeft8 = 25; IOWR_ALTERA_AVALON_PIO_DATA(PIO_OPERATION_BASE, StartShiftLeft8); } void Stop() { unsigned int StopOp; StopOp = 2; IOWR_ALTERA_AVALON_PIO_DATA(PIO_OPERATION_BASE, StopOp); } /****************************************************************** * Function: TopMenu * * Purpose: Generates the top level menu. * ******************************************************************/ static int TopMenu(void) { char ch; /* Print the top-level menu to stdout */ while (1) { alt_putstr("0 - Timer Up\n"); alt_putstr("1 - Timer Down\n"); alt_putstr("2 - Shift Right\n"); alt_putstr("3 - Shift Left\n"); alt_putstr("4 - Shift Left 2x\n"); alt_putstr("5 - Shift Left 4x\n"); alt_putstr("6 - Shift Left 8x\n"); alt_putstr("s - Press S to stop\n"); alt_putstr(" \n"); alt_putstr(" \n"); alt_putstr(" \n"); alt_putstr(" \n"); alt_putstr(" \n"); alt_putstr(" \n"); alt_putstr(" \n"); alt_putstr(" \n"); ch = alt_getchar(stdin); switch (ch) { case '0': TimerUp(); break; case '1': TimerDown(); break; case '2': ShiftRight(); break; case '3': ShiftLeft(); break; case '4': ShiftLeft2(); break; case '5': ShiftLeft4(); break; case '6': ShiftLeft8(); break; case 's': Stop(); break; case 'q': break; default: alt_putstr("\n -ERROR: %c is an invalid entry. Please try again\n"); break; } if (ch == 'q'){ alt_putstr( "\nExiting from Memory Test.\n"); break; } alt_putstr("\nPress enter to continue...\n"); } return (ch); } /****************************************************************** * Function: main * * Purpose: Continually prints the menu and performs the actions * requested by the user. * ******************************************************************/ int main(void) { int ch; /* Print the menu and do what the user requests, until they hit 'q' */ while (1) { ch = TopMenu(); if (ch == 'q') { break; } } return (0); }