新手上路
- 积分
- 36
- 金钱
- 36
- 注册时间
- 2020-11-22
- 在线时间
- 11 小时
|
楼主 |
发表于 2024-8-1 10:47:52
|
显示全部楼层
/**
* @brief 例程演示入口函数
* @param 无
* @retval 无
*/
void demo_run(void)
{
uint8_t ret;
my_mem_init(SRAMIN); /* 初始化内部SRAM内存池 */
ret = atk_mc2640_init(); /* 初始化ATK-MC2640模块 */
ret |= atk_mc2640_set_output_format(ATK_MC2640_OUTPUT_FORMAT_RGB565); /* 输出图像格式 */
//ret |= atk_mc2640_set_output_size(DEMO_OUTPUT_WIDTH, DEMO_OUTPUT_HEIGHT); /* 输出图像分辨率 */
if (ret != 0)
{
printf("ATK-MC2640 Init Failed!\r\n");
while (1)
{
LED0_TOGGLE();
delay_ms(200);
}
}
atk_mc2640_set_light_mode(ATK_MC2640_LIGHT_MODE_SUNNY); /* 设置灯光模式 */
atk_mc2640_set_color_saturation(ATK_MC2640_COLOR_SATURATION_1); /* 设置色彩饱和度 */
atk_mc2640_set_brightness(ATK_MC2640_BRIGHTNESS_1); /* 设置亮度 */
atk_mc2640_set_contrast(ATK_MC2640_CONTRAST_2); /* 设置对比度 */
atk_mc2640_set_special_effect(ATK_MC2640_SPECIAL_EFFECT_NORMAL); /* 设置特殊效果 */
//atk_mc2640_set_sensor_window(480,360,640,480);
//调整图像分辨率
atk_mc2640_set_image_size(1600,1200);//2
//atk_mc2640_set_image_size(DEMO_OUTPUT_HEIGHT,DEMO_OUTPUT_WIDTH);//2
atk_mc2640_set_image_window(0,0,1600,1200);//3
//atk_mc2640_set_image_window((1600-DEMO_OUTPUT_HEIGHT)/2,(1200-DEMO_OUTPUT_WIDTH)/2,DEMO_OUTPUT_HEIGHT,DEMO_OUTPUT_WIDTH);//3
//atk_mc2640_set_output_size(320,240);
//atk_mc2640_colorbar_enable();
/* 判断是否为RGB屏 */
if (lcdltdc.pwidth != 0)
{
/* 输出图像分辨率 */
atk_mc2640_set_output_size(DEMO_OUTPUT_HEIGHT, DEMO_OUTPUT_WIDTH);
/* 为图像数据申请一块帧缓冲内存 */
frame_buffer = mymalloc(SRAMIN, DEMO_OUTPUT_WIDTH * DEMO_OUTPUT_HEIGHT * sizeof(uint16_t));
/* 设置LCD显示方向为横屏 */
lcd_display_dir(1);
while (1)
{
/* 将获取到的图像数据,保存到帧缓冲内存中 */
atk_mc2640_get_frame((uint32_t)frame_buffer, ATK_MC2640_GET_TYPE_DTS_16B_INC, NULL);
/* 将帧缓冲内存中的图像数据,显示至LCD */
lcd_color_fill( SX,
SY,
DEMO_OUTPUT_HEIGHT - 1,
DEMO_OUTPUT_WIDTH - 1,
frame_buffer);
}
}
else
{
while (1)
{
/* 将获取到的图像数据,显示至LCD */
atk_mc2640_get_frame((uint32_t)&LCD->LCD_RAM, ATK_MC2640_GET_TYPE_DTS_16B_NOINC, demo_reset_lcd);
}
}
}
帧缓冲数组是动态申请的 |
|