/* * Copyright (c) 2006-2023, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * 2023-05-26 Chushicheng the first version */ /* * Program Checklist: This is an LCD device usage routine * The routine exports lcd_sample commands to the control terminal * Command invocation format: lcd_sample * Program function: Full screen refresh display */ #include <rtdevice.h> #include "drv_st7796.h" static void lcd_sample(void) { static rt_uint16_t orange[319*2]; static rt_uint16_t green[319*2]; static rt_uint16_t blue[319*2]; st7796_t *lcd_obj = (st7796_t *)rt_device_find("lcd"); for (rt_uint32_t i = 0; i < 319*2; i++) { orange[i] = 0xFD; } for (rt_uint32_t i = 0; i < 319*2; i++) { green[i] = 0x07; } for (rt_uint32_t i = 0; i < 319*2; i++) { blue[i] = 0xFF1F; } while (1) { for (rt_uint16_t i = 0; i < 159; i++) { lcd_load(i, i, 0, 319, orange); } for (rt_uint16_t i = 159; i < 318; i++) { lcd_load(i, i, 0, 319, blue); } for (rt_uint16_t i = 318; i < 479; i++) { lcd_load(i, i, 0, 319, green); } for (rt_uint16_t i = 479; i > 318; i--) { lcd_load(i, i, 0, 319, blue); } for (rt_uint16_t i = 318; i > 159; i--) { lcd_load(i, i, 0, 319, orange); } for (rt_uint16_t i = 159; i > 0; i--) { lcd_load(i, i, 0, 319, green); } } } MSH_CMD_EXPORT(lcd_sample, lcd sample);