/******************** F r i e n d s h i p E n d e r ******************** * 本程序隶属于 Readguy 开源项目, 请尊重开源开发者, 也就是我FriendshipEnder. * 如果有条件请到 extra/artset/reward 中扫描打赏,否则请在 Bilibili 上支持我. * 项目交流QQ群: 926824162 (萌新可以进来问问题的哟) * 郑重声明: 未经授权还请不要商用本开源项目编译出的程序. * @file guy_template.cpp * @author FriendshipEnder (f_ender@163.com), Bilibili: FriendshipEnder * @brief 墨水屏 驱动库函数 源代码模板 * 使用前, 先查找替换 template 改为你需要的驱动名称 * 比如3英寸的屏幕驱动程序应该叫 guy_dev_300a * 此时需要将 template 替换为300A. * 替换好之后, 改文件名, 大小写也要注意改 (文件名最好不要出现大写) * 最后把这个brief替换掉 * @version 1.0 * @date 2023-11-11 * @attention * Copyright (c) 2022-2023 FriendshipEnder * * Apache License, Version 2.0 * * 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. */ #include #include "guy_template.h" #ifdef READGUY_DEV_template namespace guydev_template{ //以下代码均为我 FriendshipEnder 原创, 呵呵哒~~ void drv::drv_init(){ //初始化屏幕 //add driver code... } void drv::drv_fullpart(bool part){ //初始化慢刷/快刷功能 if(lastRefresh) return; //add driver code... } void drv::drv_setDepth(uint8_t i){ epdFull=0; iLut = i?(i>15?15:i):15; //如果需要, 改成自己的代码 } /* 关于这里的f函数指针: f(n)代表访问屏幕缓存的第n字节 若设N=(((屏幕宽度+7)/8)*屏幕高度), 则n的取值范围为 0<=nuint8_t{return buffer[n];},3); 呃 你就把里面的f(n)理解为buffer[n]就行. */ void drv::drv_dispWriter(std::function f,uint8_t m){ //单色刷新 if(m&1){//stage 1 if(lastRefresh) drv_dispWriter(f,2); //add driver code... lastRefresh=millis(); } if(m&2){//stage 2 uint32_t ms=millis()-lastRefresh; uint32_t u=epdFull?slowRefTime:fastRefTime; //全刷:局刷 busy时间 if(ms=0){ //RST_PIN<0 无法唤醒 //add driver code... } epd_PowerOn = 0; epdFull = 1; //强制设置为慢刷新模式 } } #endif /* END OF FILE. ReadGuy project. Copyright (C) 2023 FriendshipEnder. */