TraSH/sim/simple/main.c

92 lines
1.7 KiB
C

/*
* Copyright (c) 2020-2021, SERI Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2021-10-29 Lyons first version
*/
#include "__def.h"
#include "systick.h"
#include "gpio.h"
#include "timer.h"
#include "uart.h"
#include "xprintf.h"
#include "rtthread.h"
// #define TEST_UART
// #define TEST_LCD
#ifdef TEST_LCD
#include "Driver_tftspi.h"
#include "Task_tft.h"
#endif // #ifdef TEST_LCD
int main()
{
#ifdef TEST_UART
int sum;
int mul;
int div;
sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
}
xprintf("add: 1+2+..+100 = %5d, expect: %5d\n", sum, 5050);
sum = 0;
for (int i = 1; i <= 100; i++) {
sum -= i;
}
xprintf("sub: -1-2-..-100 = %5d, expect: %5d\n", sum, -5050);
mul = 1;
for (int i = 1; i <= 8; i++) {
mul *= i;
}
xprintf("mul: 1*2*..*8 = %5d, expect: %5d\n", mul, 40320);
div = 19960214;
for (int i = 1; i <= 8; i++) {
div /= i;
}
xprintf("div: %d, expect: %d\n", div, 495);
#endif // #ifdef TEST_UART
#ifdef TEST_LCD
TFT_InitConfig();
TFT_Select(0xff, 1);
TFT_DisplaySTR(0, 0, &DefaultStyle, "Hello, World!");
TFT_Select(0xff, 0);
#endif // #ifdef TEST_LCD
timer_init(TIM1, CPU_FREQ_MHZ-1, (1000/RT_TICK_PER_SECOND)*1000); // tick = 1ms
timer_control(TIM1, TIM_EN);
while (1)
{
POut(0,1);
rt_thread_mdelay(500);
POut(0,0);
rt_thread_mdelay(500);
}
return 0;
}
void timer1_handler(void)
{
rt_enter_critical();
extern void rt_os_tick_callback(void);
rt_os_tick_callback();
rt_exit_critical();
}