void user_init(void) {
  esos_init_menu(); // initilize the menu, LCD and UI
  configECAN1(); // init can
  CHANGE_MODE_ECAN1(ECAN_MODE_NORMAL); // setup the CAN
  esos_pic24_configI2C1(400); // setup the I2C
  // used for my own curiosity for the SPI transmission
  CONFIG_RD2_AS_DIG_OUTPUT();
  _LATD2 = 1;
  u16_position = 0; // initial values
  u8_dutyCount = 0; // initial values
  u16_positionDACB = 0; // initial values
  u8_dutyCountDACB = 0; // initial values
  b_CANINUSE = 0;
  esos_create_menu(8); // setup the menu
  // see the .h file for details
  esos_insert_menu_title(TEAM, SET, SV3C, "team", '0');
  esos_insert_menu_title(WAVEFORM, SET, SV3C, "wvform", '0');
  esos_insert_menu_title(FREQ, SET, SVDATA, "freq", '0');
  esos_insert_menu_title(AMPLTD, SET, SVDATA, "ampltd", '0');
  esos_insert_menu_title(DUTY, SET, SVDATA, "duty", '0');
  esos_insert_menu_title(LM60, READ, NONE, "LM60", '0');
  esos_insert_menu_title(LEDSET, SET, SVDATA, "LEDs", '0');
  esos_insert_menu_title(ABOUT, STATIC, NONE, "About", '0');
  esos_setSV3C(TEAM, "APPLE  ", "CHERRY  ", "TEACHER");
  esos_setSV3C(WAVEFORM, "tri   ", "sine  ", "square ");
  esos_setSVDATA(FREQ, 64, 2047, FALSE, FALSE);
  esos_setSVDATA(AMPLTD, 0, 30, FALSE, FALSE);
  esos_setSVDATA(DUTY, 0, 100, FALSE, FALSE);
  esos_setSVDATA(LM60, 0, 100, FALSE, FALSE);
  esos_setSVDATA(LEDSET, 0, 1110, TRUE, TRUE);
  esos_setStaticInfo(ABOUT, "Developers DIGITAL FUNCTION SYNTHESIZER",
                     "James CPE Andrew EE John CPE Wyatt CPE");
  configSPI1(); // configure the spi
  configTimer2(); // configure timer 2
  configTimer3(); // configure timer 3
  esos_setSVDATAValue(DUTY, 50); // set the default duty cycle
  esos_setSVDATAValue(AMPLTD, 30); // set the default ampl
  esos_setSV3C_VALUE(TEAM, 1);
  esos_setSV3C_VALUE(WAVEFORM, 1);
  u8_currentMenuIndex = MY_ID; // initial index is set to MY_ID
  // enable the interrupts
  ESOS_REGISTER_PIC24_USER_INTERRUPT( ESOS_IRQ_PIC24_T2, ESOS_USER_IRQ_LEVEL1,
                                      _T2Interrupt);
  ESOS_ENABLE_PIC24_USER_INTERRUPT(ESOS_IRQ_PIC24_T2);
  ESOS_REGISTER_PIC24_USER_INTERRUPT( ESOS_IRQ_PIC24_T3, ESOS_USER_IRQ_LEVEL1,
                                      _T3Interrupt);
  ESOS_ENABLE_PIC24_USER_INTERRUPT(ESOS_IRQ_PIC24_T3);
  esos_RegisterTask(LEDS); // for change in LED states
  esos_RegisterTask(DACA); // for change in wave
  esos_RegisterTask(DACB); // for change in wave
  esos_RegisterTask(CAN_RX); // CAN RX
  esos_RegisterTask(CAN_TEMP_TX); // CAN TX
  esos_RegisterTask(SET_TEAM); // TEAM SETUP
  esos_RegisterTask(BUILD_LIST); // LIST
  esos_RegisterTask(UPDATE_TEMP); // UPDATES THE TEMP
} // end user_init()
Beispiel #2
0
void initScreen(){
	configSPI1();
	screenData.i16_x = 0;
	screenData.i16_y = 0;
	screenData.u16_textColor = 0;
	screenData.u16_backgroundColor = 0;
	screenData.u8_textSize = 1;
	screenData.b_wrap = 1;
	screenData.i16_width = LCDWIDTH;
	screenData.i16_height = LCDHEIGHT;
	screenData.u8_i2cAddr = 0x3D;  //the I2C address of the screen
	RSTLOW();
	DELAY_MS(10);
	RSTHIGH();
	DCCONFIG();

 // Init sequence for 128x64 OLED module
    ssd1306_command(SSD1306_DISPLAYOFF);                    // 0xAE
    ssd1306_command(SSD1306_SETDISPLAYCLOCKDIV);            // 0xD5
    ssd1306_command(0x80);                                  // the suggested ratio 0x80
    ssd1306_command(SSD1306_SETMULTIPLEX);                  // 0xA8
    ssd1306_command(0x3F);
    ssd1306_command(SSD1306_SETDISPLAYOFFSET);              // 0xD3
    ssd1306_command(0x0);                                   // no offset
    ssd1306_command(SSD1306_SETSTARTLINE | 0x0);            // line #0
    ssd1306_command(SSD1306_CHARGEPUMP);                    // 0x8D
    if (0) 
      { ssd1306_command(0x10); }
    else 
      { ssd1306_command(0x14); }
    ssd1306_command(SSD1306_MEMORYMODE);                    // 0x20
    ssd1306_command(0x00);                                  // 0x0 act like ks0108
    ssd1306_command(SSD1306_SEGREMAP | 0x1);
    ssd1306_command(SSD1306_COMSCANDEC);
    ssd1306_command(SSD1306_SETCOMPINS);                    // 0xDA
    ssd1306_command(0x12);
    ssd1306_command(SSD1306_SETCONTRAST);                   // 0x81
    if (0) 
      { ssd1306_command(0x9F); }
    else 
      { ssd1306_command(0xCF); }
    ssd1306_command(SSD1306_SETPRECHARGE);                  // 0xd9
    if (0) 
      { ssd1306_command(0x22); }
    else 
      { ssd1306_command(0xF1); }
    ssd1306_command(SSD1306_SETVCOMDETECT);                 // 0xDB
    ssd1306_command(0x40);
    ssd1306_command(SSD1306_DISPLAYALLON_RESUME);           // 0xA4
    ssd1306_command(SSD1306_NORMALDISPLAY);                 // 0xA6
    
  ssd1306_command(SSD1306_DISPLAYON);//--turn on oled panel
}