int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration----------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* Configure the system clock */ SystemClock_Config(); /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_USART1_UART_Init(); /* USER CODE BEGIN 2 */ delay_us_init(); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { delay_us(500000); HAL_GPIO_TogglePin(LD3_GPIO_Port, LD3_Pin); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ }
int main(void) { /* USER CODE BEGIN 1 */ my_usb_init(); /* USER CODE END 1 */ /* MCU Configuration----------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* Configure the system clock */ SystemClock_Config(); /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_TIM1_Init(); MX_USB_DEVICE_Init(); MX_USART3_UART_Init(); MX_TIM2_Init(); /* USER CODE BEGIN 2 */ HAL_TIM_Base_Start(&htim2); delay_us_init(&htim2); softserial_init(SOFTSERIAL_TX_GPIO_Port, SOFTSERIAL_TX_Pin); hmi_lcd_init(&huart3); cpu_ctrl_init(&htim1); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ HAL_Delay(100); hsc_stop(); cpu_reset(); lcd_clear(); addr_input(); data_input(); build_ui(); HAL_Delay(100); while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ if(is_running == 0) addr_data_display_update(); // z80 reset button if(is_button_1_pressed) { hsc_stop(); cpu_reset(); lcd_print_width(130, 110, 180, 45, "CYAN", "RESET"); is_button_1_pressed = 0; HAL_Delay(500); build_ui(); } // clk step button if(is_button_3_pressed) { hsc_stop(); cycle_clock(1); lcd_print_width(130, 110, 180, 45, "RED", "CLK STEP"); is_button_3_pressed = 0; HAL_Delay(100); build_ui(); } // ins step button if(is_button_4_pressed) { hsc_stop(); lcd_print_width(130, 110, 180, 45, "GREEN", "INS STEP"); // cycle clock until we're at next M1 cycle while(HAL_GPIO_ReadPin(CPU_CTRL_PORT, M1_Pin) == LOW) cycle_clock(1); while(HAL_GPIO_ReadPin(CPU_CTRL_PORT, M1_Pin) == HIGH) cycle_clock(1); is_button_4_pressed = 0; HAL_Delay(100); build_ui(); } // run/stop button if(is_button_5_pressed) { is_running = (is_running + 1) % 2; if(is_running) { lcd_print_width(130, 110, 180, 45, "GREEN", "RUNNING"); hsc_start(); } else { hsc_stop(); build_ui(); } is_button_5_pressed = 0; } usb_data = my_usb_readline(); if(usb_data != NULL && strstr(usb_data, "epm") != NULL) { hsc_stop(); program_mode(); build_ui(); } } /* USER CODE END 3 */ }
int main(void) { uint32_t stop_time; uint32_t start_time; RCC_ClocksTypeDef RCC_Clocks; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); systick_millis_init(); UART_Init(); timer7_us_init(); delay_us_init(); //LEDS gpio_pinSetup(GPIOC, GPIO_Pin_8, GPIO_Mode_OUT, GPIO_OType_PP, GPIO_PuPd_NOPULL, GPIO_Speed_40MHz); GPIO_WriteBit(GPIOC, GPIO_Pin_8, Bit_SET); //CLOCK OUTPUT PA8 gpio_pinSetup_AF(GPIOA, GPIO_Pin_8, GPIO_AF_MCO, GPIO_OType_PP, GPIO_PuPd_NOPULL, GPIO_Speed_40MHz); RCC_MCOConfig(RCC_MCOSource_SYSCLK, RCC_MCODiv_1); printLn(); printStringLn("------------------------------------------------"); printStringLn("System initialized."); RCC_GetClocksFreq(&RCC_Clocks); printString("SYSCLK_Frequency: "); printNumberLn(RCC_Clocks.SYSCLK_Frequency, DEC); printString("HCLK_Frequency: "); printNumberLn(RCC_Clocks.HCLK_Frequency, DEC); printString("PCLK1_Frequency: "); printNumberLn(RCC_Clocks.PCLK1_Frequency, DEC); printString("PCLK2_Frequency: "); printNumberLn(RCC_Clocks.PCLK2_Frequency, DEC); printString("SYSCLKSource: "); printNumberLn(RCC_GetSYSCLKSource(), DEC); printString("PRESCALER TIM2: "); printNumberLn(TIM_GetPrescaler(TIM3), DEC); printStringLn("------------------------------------------------"); while (1) { GPIO_ToggleBits(GPIOC, GPIO_Pin_8); TIM_SetCounter(TIM7, 0); TIM_Cmd(TIM7, ENABLE); start_time = TIM_GetCounter(TIM7); delay_us(25); stop_time = TIM_GetCounter(TIM7); TIM_Cmd(TIM7, DISABLE); printNumberLn(stop_time - start_time, DEC); delay(100); printNumberLn(millis(), DEC); } }