iRisc / Demo / demo_main.c
demo_main.c
Raw
#include <stdint.h>
#include <stdio.h>
#include "riscy.c"
#include <spi_lcd.h>
#include "demo_happy_birthday.c"
#include "demo_spi_welcome.c"
// #include "demo_spi_programs.c"
#include "demo_prime.c"
#include "demo_fibonacci.c"
#include "spi_demo_game.c"


int main() 
{
  
  int flag = 0;

  uart_init();
  // spi_init();
  for(int i = 0; i< 10000; i++){
    printUartNewLine();
  }

  GPIO_WRITE(0x01000001);
  delay(1000);
  GPIO_WRITE(0x03000001);
  delay(1000);
  GPIO_WRITE(0x07000001);
  delay(1000);
  GPIO_WRITE(0x0F000001);
  delay(1000);
  GPIO_WRITE(0x1F000001);
  delay(1000);
  GPIO_WRITE(0x3F000001);
  delay(1000);
  GPIO_WRITE(0x7F000001);
  delay(1000);
  GPIO_WRITE(0xFF000001);
  delay(1000);

  lcd_init(10);

  print_welcome_message();

  delay(40000);

  danger();

  print_menu_options();

  while(1){

    flag  = 0;

    if(GPIO_READ == 0x55000000){
      delay(1);
      while(GPIO_READ != 0x00000000) {
         if(GPIO_READ == 0xFF000000) {
            // print_happy_birthday_spi();
            play_happy_birthday();
            flag = 1;
         } 
      }
      if(!flag){
        print_prime_spi();
        prime_uart();
      }
      print_menu_options();


    }

    if(GPIO_READ == 0xAA000000) { 
      delay(1);
      while(GPIO_READ != 0x00000000) {
         if(GPIO_READ == 0xFF000000) {
            play_happy_birthday();
            flag = 1;
         }
      }
      if (!flag) {
      //option 2
        game();
      }
        clear();
        print_menu_options();
      

    }

    if(GPIO_READ == 0xFF000000) {
      //option 3
      // print_happy_birthday_spi();
      play_happy_birthday();
      clear();
      print_menu_options();
    }

  }
  return 0;
}