void LCD_Init() { rcc_peripheral_enable_clock(&RCC_AHB1ENR, RCC_AHB1ENR_IOPDEN); //MOSI gpio_mode_setup(GPIOD, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO10); //CLK gpio_mode_setup(GPIOD, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO11); //RST gpio_mode_setup(GPIOD, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO12); //A0 gpio_mode_setup(GPIOD, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO13); //CS gpio_mode_setup(GPIOD, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO14); NCS_HI(); RST_HI(); lcd_delay(5); RST_LO(); lcd_delay(120); //11ms RST_HI(); lcd_delay(2500); AspiCmd(0xE2); lcd_delay(2500); lcd_screen_init(); lcd_delay(120); lcd_screen_init(); lcd_delay(120); AspiCmd(0xAF); //dc2=1, IC into exit SLEEP MODE, dc3=1 gray=ON, dc4=1 Green Enhanc mode disabled memset(img, 0, sizeof(img)); memset(dirty, 0, sizeof(dirty)); //Clear screen for (int y = 0; y < LCD_HEIGHT; y++) { lcd_set_row(y); AspiCmd(0xAF); CLK_HI(); A0_HI(); NCS_LO(); for (int x = 0; x < 212; x++) { //write_pixel(((x/53) % 2) ^ ((y / 16) %2)); write_pixel(0); } NCS_HI(); A0_HI(); AspiData(0); } }
// stop everything then activate card again. static void scard_cold_rst(ISO7816_SC* scard) { deactivation(scard); _delay_ms(51); activation(scard); _delay_ms(251); // Wait more than 400 clock cycles RST_HI(); }
// ************************************************************************* // Function to reset PDC8544 static void pdcReset( void ) { RST_LO(); _delay_ms(15); RST_HI(); _delay_ms(15); }