69 lines
1.6 KiB
C
69 lines
1.6 KiB
C
|
/*
|
||
|
* 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);
|