mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-01-15 17:02:53 +08:00
6454fd8343
add pack
196 lines
5.6 KiB
C
196 lines
5.6 KiB
C
/****************************************************************************
|
|
* Copyright 2021 Gorgon Meducer (Email:embedded_zhuoran@hotmail.com) *
|
|
* *
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); *
|
|
* you may not use this file except in compliance with the License. *
|
|
* You may obtain a copy of the License at *
|
|
* *
|
|
* http://www.apache.org/licenses/LICENSE-2.0 *
|
|
* *
|
|
* Unless required by applicable law or agreed to in writing, software *
|
|
* distributed under the License is distributed on an "AS IS" BASIS, *
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
|
|
* See the License for the specific language governing permissions and *
|
|
* limitations under the License. *
|
|
* *
|
|
****************************************************************************/
|
|
/*============================ INCLUDES ======================================*/
|
|
#include "pico/stdlib.h"
|
|
#include "perf_counter.h"
|
|
|
|
#if defined(__PICO_USE_LCD_1IN3__) && __PICO_USE_LCD_1IN3__
|
|
#include "DEV_Config.h"
|
|
#include "LCD_1In3.h"
|
|
#include "GLCD_Config.h"
|
|
#endif
|
|
|
|
#include <stdio.h>
|
|
|
|
#include "RTE_Components.h"
|
|
#if defined(RTE_Compiler_EventRecorder) && defined(RTE_Compiler_IO_STDOUT_EVR)
|
|
# include <EventRecorder.h>
|
|
#endif
|
|
|
|
#if defined(RTE_Script_PikaScript) || defined(USING_PIKAPYTHON)
|
|
# include "pikaScript.h"
|
|
#endif
|
|
|
|
#if defined(__RTE_ACCELERATION_ARM_2D__) || defined(RTE_Acceleration_Arm_2D)
|
|
# include "arm_2d.h"
|
|
# include "arm_2d_helper.h"
|
|
# include "arm_2d_disp_adapters.h"
|
|
# include "arm_2d_scenes.h"
|
|
#endif
|
|
|
|
#if defined(__RTE_ACCELERATION_ARM_2D_EXTRA_BENCHMARK_WATCH_PANEL__) \
|
|
|| defined(__RTE_ACCELERATION_ARM_2D_EXTRA_BENCHMARK_GENERIC__)
|
|
# include "arm_2d_benchmark.h"
|
|
#endif
|
|
/*============================ MACROS ========================================*/
|
|
#define TOP (0x1FFF)
|
|
|
|
/*============================ MACROFIED FUNCTIONS ===========================*/
|
|
#ifndef ABS
|
|
# define ABS(__N) ((__N) < 0 ? -(__N) : (__N))
|
|
#endif
|
|
#ifndef _BV
|
|
# define _BV(__N) ((uint32_t)1<<(__N))
|
|
#endif
|
|
|
|
|
|
/*============================ TYPES =========================================*/
|
|
/*============================ GLOBAL VARIABLES ==============================*/
|
|
/*============================ LOCAL VARIABLES ===============================*/
|
|
/*============================ PROTOTYPES ====================================*/
|
|
/*============================ IMPLEMENTATION ================================*/
|
|
|
|
void SysTick_Handler(void)
|
|
{
|
|
|
|
}
|
|
|
|
/*! \brief set the 16-level led gradation
|
|
*! \param hwLevel gradation
|
|
*! \return none
|
|
*/
|
|
static void set_led_gradation(uint16_t hwLevel)
|
|
{
|
|
static uint16_t s_hwCounter = 0;
|
|
|
|
if (hwLevel >= s_hwCounter) {
|
|
gpio_put(PICO_DEFAULT_LED_PIN, 1);
|
|
} else {
|
|
gpio_put(PICO_DEFAULT_LED_PIN, 0);
|
|
}
|
|
|
|
s_hwCounter++;
|
|
s_hwCounter &= TOP;
|
|
}
|
|
|
|
static void breath_led(void)
|
|
{
|
|
static uint16_t s_hwCounter = 0;
|
|
static int16_t s_nGray = (TOP >> 1);
|
|
|
|
s_hwCounter++;
|
|
if (!(s_hwCounter & (_BV(10)-1))) {
|
|
s_nGray++;
|
|
if (s_nGray == TOP) {
|
|
s_nGray = 0;
|
|
}
|
|
}
|
|
|
|
set_led_gradation(ABS(s_nGray - (TOP >> 1)));
|
|
}
|
|
|
|
static void system_init(void)
|
|
{
|
|
extern void SystemCoreClockUpdate();
|
|
|
|
SystemCoreClockUpdate();
|
|
/*! \note if you do want to use SysTick in your application, please use
|
|
*! init_cycle_counter(true);
|
|
*! instead of
|
|
*! init_cycle_counter(false);
|
|
*/
|
|
init_cycle_counter(false);
|
|
|
|
#if defined(RTE_Compiler_EventRecorder) && defined(RTE_Compiler_IO_STDOUT_EVR)
|
|
EventRecorderInitialize(0, 1);
|
|
#endif
|
|
stdio_init_all();
|
|
|
|
gpio_init(PICO_DEFAULT_LED_PIN);
|
|
gpio_set_dir(PICO_DEFAULT_LED_PIN, GPIO_OUT);
|
|
|
|
#if defined(__PICO_USE_LCD_1IN3__) && __PICO_USE_LCD_1IN3__
|
|
DEV_Delay_ms(100);
|
|
|
|
if(DEV_Module_Init()!=0){
|
|
//assert(0);
|
|
}
|
|
|
|
DEV_SET_PWM(50);
|
|
/* LCD Init */
|
|
|
|
LCD_1IN3_Init(HORIZONTAL);
|
|
LCD_1IN3_Clear(GLCD_COLOR_BLUE);
|
|
|
|
for (int n = 0; n < KEY_NUM; n++) {
|
|
dev_key_init(n);
|
|
}
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
int stdin_getchar(void);
|
|
char pika_platform_getchar(void) {
|
|
return stdin_getchar();
|
|
}
|
|
|
|
|
|
int main(void)
|
|
{
|
|
system_init();
|
|
|
|
__cycleof__("printf") {
|
|
printf("Hello Pico-Template\r\n");
|
|
}
|
|
|
|
#if defined(RTE_Script_PikaScript) || defined(USING_PIKAPYTHON)
|
|
pikaScriptInit();
|
|
#endif
|
|
|
|
#if defined( __PERF_COUNTER_COREMARK__ ) && __PERF_COUNTER_COREMARK__
|
|
printf("\r\nRun Coremark 1.0...\r\n");
|
|
coremark_main();
|
|
#endif
|
|
|
|
#if defined(__RTE_ACCELERATION_ARM_2D_EXTRA_BENCHMARK_WATCH_PANEL__) \
|
|
|| defined(__RTE_ACCELERATION_ARM_2D_EXTRA_BENCHMARK_GENERIC__)
|
|
arm_2d_run_benchmark();
|
|
#endif
|
|
|
|
#if defined(__RTE_ACCELERATION_ARM_2D__) || defined(RTE_Acceleration_Arm_2D)
|
|
arm_2d_init();
|
|
disp_adapter0_init();
|
|
|
|
//arm_2d_scene_player_switch_to_next_scene(&DISP0_ADAPTER);
|
|
#endif
|
|
|
|
while (true) {
|
|
breath_led();
|
|
|
|
#if defined(__RTE_ACCELERATION_ARM_2D__) || defined(RTE_Acceleration_Arm_2D)
|
|
disp_adapter0_task();
|
|
#endif
|
|
//gpio_put(PICO_DEFAULT_LED_PIN, 1);
|
|
//sleep_ms(500);
|
|
//gpio_put(PICO_DEFAULT_LED_PIN, 0);
|
|
//sleep_ms(500);
|
|
}
|
|
//return 0;
|
|
}
|