U8x8lib.h 333 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446
  1. /*
  2. U8x8lib.h
  3. C++ RT-Thread wrapper for the u8x8 struct and c functions.
  4. Universal 8bit Graphics Library (https://github.com/olikraus/u8g2/)
  5. Copyright (c) 2016, olikraus@gmail.com
  6. All rights reserved.
  7. Redistribution and use in source and binary forms, with or without modification,
  8. are permitted provided that the following conditions are met:
  9. * Redistributions of source code must retain the above copyright notice, this list
  10. of conditions and the following disclaimer.
  11. * Redistributions in binary form must reproduce the above copyright notice, this
  12. list of conditions and the following disclaimer in the documentation and/or other
  13. materials provided with the distribution.
  14. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
  15. CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
  16. INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  17. MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  18. DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
  19. CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  20. SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  21. NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  22. LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  23. CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
  24. STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  25. ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
  26. ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  27. */
  28. #ifndef U8X8LIB_HH
  29. #define U8X8LIB_HH
  30. #include <rtthread.h>
  31. #include <rtdevice.h>
  32. #include <u8g2.h>
  33. #include <u8x8.h>
  34. #include "u8g2_port.h"
  35. #include "Print.h"
  36. extern "C" uint8_t u8x8_byte_rtthread_4wire_hw_spi(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *arg_ptr);
  37. extern "C" uint8_t u8x8_byte_rtthread_hw_i2c(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *arg_ptr);
  38. extern "C" uint8_t u8x8_gpio_and_delay_rtthread(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *arg_ptr);
  39. #ifdef U8X8_USE_PINS
  40. void u8x8_SetPin_4Wire_SW_SPI(u8x8_t *u8x8, uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset);
  41. void u8x8_SetPin_3Wire_SW_SPI(u8x8_t *u8x8, uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset);
  42. void u8x8_SetPin_4Wire_HW_SPI(u8x8_t *u8x8, uint8_t cs, uint8_t dc, uint8_t reset);
  43. void u8x8_SetPin_ST7920_HW_SPI(u8x8_t *u8x8, uint8_t cs, uint8_t reset);
  44. void u8x8_SetPin_SW_I2C(u8x8_t *u8x8, uint8_t clock, uint8_t data, uint8_t reset);
  45. void u8x8_SetPin_HW_I2C(u8x8_t *u8x8, uint8_t reset, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE);
  46. void u8x8_SetPin_8Bit_6800(u8x8_t *u8x8, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset);
  47. void u8x8_SetPin_8Bit_8080(u8x8_t *u8x8, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t wr, uint8_t cs, uint8_t dc, uint8_t reset);
  48. void u8x8_SetPin_KS0108(u8x8_t *u8x8, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t dc, uint8_t cs0, uint8_t cs1, uint8_t cs2, uint8_t reset);
  49. void u8x8_SetPin_SED1520(u8x8_t *u8x8, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t dc, uint8_t e1, uint8_t e2, uint8_t reset);
  50. #endif
  51. class U8X8: public Print
  52. {
  53. protected:
  54. u8x8_t u8x8;
  55. public:
  56. uint8_t tx, ty;
  57. U8X8(void) { home(); }
  58. u8x8_t *getU8x8(void) { return &u8x8; }
  59. uint32_t getBusClock(void) { return u8x8.bus_clock; }
  60. void setBusClock(uint32_t clock_speed) { u8x8.bus_clock = clock_speed; }
  61. void setI2CAddress(uint8_t adr) { u8x8_SetI2CAddress(&u8x8, adr); }
  62. uint8_t getCols(void) { return u8x8_GetCols(&u8x8); }
  63. uint8_t getRows(void) { return u8x8_GetRows(&u8x8); }
  64. void drawTile(uint8_t x, uint8_t y, uint8_t cnt, uint8_t *tile_ptr) {
  65. u8x8_DrawTile(&u8x8, x, y, cnt, tile_ptr); }
  66. #ifdef U8X8_WITH_USER_PTR
  67. void *getUserPtr() { return u8x8_GetUserPtr(&u8x8); }
  68. void setUserPtr(void *p) { u8x8_SetUserPtr(&u8x8, p); }
  69. #endif
  70. #ifdef U8X8_USE_PINS
  71. /* set the menu pins before calling begin() or initDisplay() */
  72. void setMenuSelectPin(uint8_t val) {
  73. u8x8_SetMenuSelectPin(&u8x8, val); }
  74. void setMenuPrevPin(uint8_t val) {
  75. u8x8_SetMenuPrevPin(&u8x8, val); }
  76. void setMenuNextPin(uint8_t val) {
  77. u8x8_SetMenuNextPin(&u8x8, val); }
  78. void setMenuUpPin(uint8_t val) {
  79. u8x8_SetMenuUpPin(&u8x8, val); }
  80. void setMenuDownPin(uint8_t val) {
  81. u8x8_SetMenuDownPin(&u8x8, val); }
  82. void setMenuHomePin(uint8_t val) {
  83. u8x8_SetMenuHomePin(&u8x8, val); }
  84. #endif
  85. void initDisplay(void) {
  86. u8x8_InitDisplay(&u8x8); }
  87. void clearDisplay(void) {
  88. u8x8_ClearDisplay(&u8x8); }
  89. void fillDisplay(void) {
  90. u8x8_FillDisplay(&u8x8); }
  91. void setPowerSave(uint8_t is_enable) {
  92. u8x8_SetPowerSave(&u8x8, is_enable); }
  93. bool begin(void) {
  94. initDisplay(); clearDisplay(); setPowerSave(0); return 1; }
  95. #ifdef U8X8_USE_PINS
  96. /* use U8X8_PIN_NONE if a pin is not required */
  97. bool begin(uint8_t menu_select_pin, uint8_t menu_next_pin, uint8_t menu_prev_pin, uint8_t menu_up_pin = U8X8_PIN_NONE, uint8_t menu_down_pin = U8X8_PIN_NONE, uint8_t menu_home_pin = U8X8_PIN_NONE) {
  98. setMenuSelectPin(menu_select_pin);
  99. setMenuNextPin(menu_next_pin);
  100. setMenuPrevPin(menu_prev_pin);
  101. setMenuUpPin(menu_up_pin);
  102. setMenuDownPin(menu_down_pin);
  103. setMenuHomePin(menu_home_pin);
  104. return begin(); }
  105. #endif
  106. void setFlipMode(uint8_t mode) {
  107. u8x8_SetFlipMode(&u8x8, mode); }
  108. void refreshDisplay(void) { // Dec 16: Only required for SSD1606
  109. u8x8_RefreshDisplay(&u8x8); }
  110. void clearLine(uint8_t line) {
  111. u8x8_ClearLine(&u8x8, line); }
  112. void setContrast(uint8_t value) {
  113. u8x8_SetContrast(&u8x8, value); }
  114. void setInverseFont(uint8_t value) {
  115. u8x8_SetInverseFont(&u8x8, value); }
  116. void setFont(const uint8_t *font_8x8) {
  117. u8x8_SetFont(&u8x8, font_8x8); }
  118. void drawGlyph(uint8_t x, uint8_t y, uint8_t encoding) {
  119. u8x8_DrawGlyph(&u8x8, x, y, encoding); }
  120. void draw2x2Glyph(uint8_t x, uint8_t y, uint8_t encoding) {
  121. u8x8_Draw2x2Glyph(&u8x8, x, y, encoding); }
  122. void draw1x2Glyph(uint8_t x, uint8_t y, uint8_t encoding) {
  123. u8x8_Draw1x2Glyph(&u8x8, x, y, encoding); }
  124. void drawString(uint8_t x, uint8_t y, const char *s) {
  125. u8x8_DrawString(&u8x8, x, y, s); }
  126. void drawUTF8(uint8_t x, uint8_t y, const char *s) {
  127. u8x8_DrawUTF8(&u8x8, x, y, s); }
  128. void draw2x2String(uint8_t x, uint8_t y, const char *s) {
  129. u8x8_Draw2x2String(&u8x8, x, y, s); }
  130. void draw1x2String(uint8_t x, uint8_t y, const char *s) {
  131. u8x8_Draw1x2String(&u8x8, x, y, s); }
  132. void draw2x2UTF8(uint8_t x, uint8_t y, const char *s) {
  133. u8x8_Draw2x2UTF8(&u8x8, x, y, s); }
  134. void draw1x2UTF8(uint8_t x, uint8_t y, const char *s) {
  135. u8x8_Draw1x2UTF8(&u8x8, x, y, s); }
  136. uint8_t getUTF8Len(const char *s) {
  137. return u8x8_GetUTF8Len(&u8x8, s); }
  138. virtual size_t write(uint8_t v);
  139. /* code extended and moved to .cpp file, issue 74
  140. size_t write(uint8_t v) {
  141. u8x8_DrawGlyph(&u8x8, tx, ty, v);
  142. tx++;
  143. return 1;
  144. }
  145. */
  146. virtual size_t write(const uint8_t *buffer, size_t size) {
  147. size_t cnt = 0;
  148. while( size > 0 ) {
  149. cnt += write(*buffer++);
  150. size--;
  151. }
  152. return cnt;
  153. }
  154. void inverse(void) { setInverseFont(1); }
  155. void noInverse(void) { setInverseFont(0); }
  156. /* return 0 for no event or U8X8_MSG_GPIO_MENU_SELECT, */
  157. /* U8X8_MSG_GPIO_MENU_NEXT, U8X8_MSG_GPIO_MENU_PREV, */
  158. /* U8X8_MSG_GPIO_MENU_HOME */
  159. uint8_t getMenuEvent(void) { return u8x8_GetMenuEvent(&u8x8); }
  160. uint8_t userInterfaceSelectionList(const char *title, uint8_t start_pos, const char *sl) {
  161. return u8x8_UserInterfaceSelectionList(&u8x8, title, start_pos, sl); }
  162. uint8_t userInterfaceMessage(const char *title1, const char *title2, const char *title3, const char *buttons) {
  163. return u8x8_UserInterfaceMessage(&u8x8, title1, title2, title3, buttons); }
  164. uint8_t userInterfaceInputValue(const char *title, const char *pre, uint8_t *value, uint8_t lo, uint8_t hi, uint8_t digits, const char *post) {
  165. return u8x8_UserInterfaceInputValue(&u8x8, title, pre, value, lo, hi, digits, post); }
  166. /* LiquidCrystal compatible functions */
  167. void home(void) { tx = 0; ty = 0; }
  168. void clear(void) { clearDisplay(); home(); }
  169. void noDisplay(void) { u8x8_SetPowerSave(&u8x8, 1); }
  170. void display(void) { u8x8_SetPowerSave(&u8x8, 0); }
  171. void setCursor(uint8_t x, uint8_t y) { tx = x; ty = y; }
  172. void drawLog(uint8_t x, uint8_t y, class U8X8LOG &u8x8log);
  173. };
  174. class U8X8LOG: public Print
  175. {
  176. public:
  177. u8log_t u8log;
  178. /* the constructor does nothing, use begin() instead */
  179. U8X8LOG(void) { }
  180. /* connect to u8g2, draw to u8g2 whenever required */
  181. bool begin(class U8X8 &u8x8, uint8_t width, uint8_t height, uint8_t *buf) {
  182. u8log_Init(&u8log, width, height, buf);
  183. u8log_SetCallback(&u8log, u8log_u8x8_cb, u8x8.getU8x8());
  184. return true;
  185. }
  186. /* disconnected version, manual redraw required */
  187. bool begin(uint8_t width, uint8_t height, uint8_t *buf) {
  188. u8log_Init(&u8log, width, height, buf);
  189. return true;
  190. }
  191. void setLineHeightOffset(int8_t line_height_offset) {
  192. u8log_SetLineHeightOffset(&u8log, line_height_offset); }
  193. void setRedrawMode(uint8_t is_redraw_line_for_each_char) {
  194. u8log_SetRedrawMode(&u8log, is_redraw_line_for_each_char); }
  195. /* virtual function for print base class */
  196. virtual size_t write(uint8_t v) {
  197. u8log_WriteChar(&u8log, v);
  198. return 1;
  199. }
  200. virtual size_t write(const uint8_t *buffer, size_t size) {
  201. size_t cnt = 0;
  202. while( size > 0 ) {
  203. cnt += write(*buffer++);
  204. size--;
  205. }
  206. return cnt;
  207. }
  208. void writeString(const char *s) { u8log_WriteString(&u8log, s); }
  209. void writeChar(uint8_t c) { u8log_WriteChar(&u8log, c); }
  210. void writeHex8(uint8_t b) { u8log_WriteHex8(&u8log, b); }
  211. void writeHex16(uint16_t v) { u8log_WriteHex16(&u8log, v); }
  212. void writeHex32(uint32_t v) { u8log_WriteHex32(&u8log, v); }
  213. void writeDec8(uint8_t v, uint8_t d) { u8log_WriteDec8(&u8log, v, d); }
  214. void writeDec16(uint8_t v, uint8_t d) { u8log_WriteDec16(&u8log, v, d); }
  215. };
  216. /* u8log_u8x8.c */
  217. inline void U8X8::drawLog(uint8_t x, uint8_t y, class U8X8LOG &u8x8log)
  218. {
  219. u8x8_DrawLog(&u8x8, x, y, &(u8x8log.u8log));
  220. }
  221. #ifdef U8X8_USE_PINS
  222. class U8X8_NULL : public U8X8 {
  223. public: U8X8_NULL(void) : U8X8() {
  224. u8x8_Setup(getU8x8(), u8x8_d_null_cb, u8x8_cad_empty, u8x8_byte_empty, u8x8_dummy_cb);
  225. }
  226. };
  227. /* generated code (codebuild), u8g2 project */
  228. class U8X8_SSD1305_128X32_NONAME_4W_SW_SPI : public U8X8 {
  229. public: U8X8_SSD1305_128X32_NONAME_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  230. u8x8_Setup(getU8x8(), u8x8_d_ssd1305_128x32_noname, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  231. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  232. }
  233. };
  234. #if defined U8G2_USE_HW_SPI
  235. class U8X8_SSD1305_128X32_NONAME_4W_HW_SPI : public U8X8 {
  236. public: U8X8_SSD1305_128X32_NONAME_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  237. u8x8_Setup(getU8x8(), u8x8_d_ssd1305_128x32_noname, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  238. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  239. }
  240. };
  241. #endif
  242. class U8X8_SSD1305_128X32_NONAME_6800 : public U8X8 {
  243. public: U8X8_SSD1305_128X32_NONAME_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  244. u8x8_Setup(getU8x8(), u8x8_d_ssd1305_128x32_noname, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  245. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  246. }
  247. };
  248. class U8X8_SSD1305_128X32_NONAME_8080 : public U8X8 {
  249. public: U8X8_SSD1305_128X32_NONAME_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  250. u8x8_Setup(getU8x8(), u8x8_d_ssd1305_128x32_noname, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  251. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  252. }
  253. };
  254. class U8X8_SSD1305_128X32_ADAFRUIT_4W_SW_SPI : public U8X8 {
  255. public: U8X8_SSD1305_128X32_ADAFRUIT_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  256. u8x8_Setup(getU8x8(), u8x8_d_ssd1305_128x32_adafruit, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  257. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  258. }
  259. };
  260. #if defined U8G2_USE_HW_SPI
  261. class U8X8_SSD1305_128X32_ADAFRUIT_4W_HW_SPI : public U8X8 {
  262. public: U8X8_SSD1305_128X32_ADAFRUIT_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  263. u8x8_Setup(getU8x8(), u8x8_d_ssd1305_128x32_adafruit, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  264. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  265. }
  266. };
  267. #endif
  268. class U8X8_SSD1305_128X32_ADAFRUIT_6800 : public U8X8 {
  269. public: U8X8_SSD1305_128X32_ADAFRUIT_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  270. u8x8_Setup(getU8x8(), u8x8_d_ssd1305_128x32_adafruit, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  271. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  272. }
  273. };
  274. class U8X8_SSD1305_128X32_ADAFRUIT_8080 : public U8X8 {
  275. public: U8X8_SSD1305_128X32_ADAFRUIT_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  276. u8x8_Setup(getU8x8(), u8x8_d_ssd1305_128x32_adafruit, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  277. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  278. }
  279. };
  280. class U8X8_SSD1305_128X32_NONAME_SW_I2C : public U8X8 {
  281. public: U8X8_SSD1305_128X32_NONAME_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  282. u8x8_Setup(getU8x8(), u8x8_d_ssd1305_128x32_noname, u8x8_cad_ssd13xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  283. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  284. }
  285. };
  286. #if defined U8G2_USE_HW_I2C
  287. class U8X8_SSD1305_128X32_NONAME_HW_I2C : public U8X8 {
  288. public: U8X8_SSD1305_128X32_NONAME_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  289. u8x8_Setup(getU8x8(), u8x8_d_ssd1305_128x32_noname, u8x8_cad_ssd13xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  290. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  291. }
  292. };
  293. #endif
  294. class U8X8_SSD1305_128X32_ADAFRUIT_SW_I2C : public U8X8 {
  295. public: U8X8_SSD1305_128X32_ADAFRUIT_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  296. u8x8_Setup(getU8x8(), u8x8_d_ssd1305_128x32_adafruit, u8x8_cad_ssd13xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  297. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  298. }
  299. };
  300. #if defined U8G2_USE_HW_I2C
  301. class U8X8_SSD1305_128X32_ADAFRUIT_HW_I2C : public U8X8 {
  302. public: U8X8_SSD1305_128X32_ADAFRUIT_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  303. u8x8_Setup(getU8x8(), u8x8_d_ssd1305_128x32_adafruit, u8x8_cad_ssd13xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  304. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  305. }
  306. };
  307. #endif
  308. class U8X8_SSD1305_128X64_ADAFRUIT_4W_SW_SPI : public U8X8 {
  309. public: U8X8_SSD1305_128X64_ADAFRUIT_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  310. u8x8_Setup(getU8x8(), u8x8_d_ssd1305_128x64_adafruit, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  311. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  312. }
  313. };
  314. #if defined U8G2_USE_HW_SPI
  315. class U8X8_SSD1305_128X64_ADAFRUIT_4W_HW_SPI : public U8X8 {
  316. public: U8X8_SSD1305_128X64_ADAFRUIT_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  317. u8x8_Setup(getU8x8(), u8x8_d_ssd1305_128x64_adafruit, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  318. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  319. }
  320. };
  321. #endif
  322. class U8X8_SSD1305_128X64_ADAFRUIT_6800 : public U8X8 {
  323. public: U8X8_SSD1305_128X64_ADAFRUIT_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  324. u8x8_Setup(getU8x8(), u8x8_d_ssd1305_128x64_adafruit, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  325. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  326. }
  327. };
  328. class U8X8_SSD1305_128X64_ADAFRUIT_8080 : public U8X8 {
  329. public: U8X8_SSD1305_128X64_ADAFRUIT_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  330. u8x8_Setup(getU8x8(), u8x8_d_ssd1305_128x64_adafruit, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  331. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  332. }
  333. };
  334. class U8X8_SSD1305_128X64_RAYSTAR_4W_SW_SPI : public U8X8 {
  335. public: U8X8_SSD1305_128X64_RAYSTAR_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  336. u8x8_Setup(getU8x8(), u8x8_d_ssd1305_128x64_raystar, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  337. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  338. }
  339. };
  340. #if defined U8G2_USE_HW_SPI
  341. class U8X8_SSD1305_128X64_RAYSTAR_4W_HW_SPI : public U8X8 {
  342. public: U8X8_SSD1305_128X64_RAYSTAR_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  343. u8x8_Setup(getU8x8(), u8x8_d_ssd1305_128x64_raystar, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  344. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  345. }
  346. };
  347. #endif
  348. class U8X8_SSD1305_128X64_RAYSTAR_6800 : public U8X8 {
  349. public: U8X8_SSD1305_128X64_RAYSTAR_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  350. u8x8_Setup(getU8x8(), u8x8_d_ssd1305_128x64_raystar, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  351. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  352. }
  353. };
  354. class U8X8_SSD1305_128X64_RAYSTAR_8080 : public U8X8 {
  355. public: U8X8_SSD1305_128X64_RAYSTAR_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  356. u8x8_Setup(getU8x8(), u8x8_d_ssd1305_128x64_raystar, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  357. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  358. }
  359. };
  360. class U8X8_SSD1305_128X64_ADAFRUIT_SW_I2C : public U8X8 {
  361. public: U8X8_SSD1305_128X64_ADAFRUIT_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  362. u8x8_Setup(getU8x8(), u8x8_d_ssd1305_128x64_adafruit, u8x8_cad_ssd13xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  363. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  364. }
  365. };
  366. #if defined U8G2_USE_HW_I2C
  367. class U8X8_SSD1305_128X64_ADAFRUIT_HW_I2C : public U8X8 {
  368. public: U8X8_SSD1305_128X64_ADAFRUIT_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  369. u8x8_Setup(getU8x8(), u8x8_d_ssd1305_128x64_adafruit, u8x8_cad_ssd13xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  370. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  371. }
  372. };
  373. #endif
  374. class U8X8_SSD1305_128X64_RAYSTAR_SW_I2C : public U8X8 {
  375. public: U8X8_SSD1305_128X64_RAYSTAR_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  376. u8x8_Setup(getU8x8(), u8x8_d_ssd1305_128x64_raystar, u8x8_cad_ssd13xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  377. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  378. }
  379. };
  380. #if defined U8G2_USE_HW_I2C
  381. class U8X8_SSD1305_128X64_RAYSTAR_HW_I2C : public U8X8 {
  382. public: U8X8_SSD1305_128X64_RAYSTAR_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  383. u8x8_Setup(getU8x8(), u8x8_d_ssd1305_128x64_raystar, u8x8_cad_ssd13xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  384. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  385. }
  386. };
  387. #endif
  388. class U8X8_SSD1306_2040X16_4W_SW_SPI : public U8X8 {
  389. public: U8X8_SSD1306_2040X16_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  390. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_2040x16, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  391. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  392. }
  393. };
  394. #if defined U8G2_USE_HW_SPI
  395. class U8X8_SSD1306_2040X16_4W_HW_SPI : public U8X8 {
  396. public: U8X8_SSD1306_2040X16_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  397. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_2040x16, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  398. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  399. }
  400. };
  401. #endif
  402. class U8X8_SSD1306_2040X16_3W_SW_SPI : public U8X8 {
  403. public: U8X8_SSD1306_2040X16_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  404. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_2040x16, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  405. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  406. }
  407. };
  408. class U8X8_SSD1306_2040X16_6800 : public U8X8 {
  409. public: U8X8_SSD1306_2040X16_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  410. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_2040x16, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  411. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  412. }
  413. };
  414. class U8X8_SSD1306_2040X16_8080 : public U8X8 {
  415. public: U8X8_SSD1306_2040X16_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  416. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_2040x16, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  417. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  418. }
  419. };
  420. class U8X8_SSD1306_128X64_NONAME_4W_SW_SPI : public U8X8 {
  421. public: U8X8_SSD1306_128X64_NONAME_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  422. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x64_noname, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  423. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  424. }
  425. };
  426. #if defined U8G2_USE_HW_SPI
  427. class U8X8_SSD1306_128X64_NONAME_4W_HW_SPI : public U8X8 {
  428. public: U8X8_SSD1306_128X64_NONAME_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  429. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x64_noname, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  430. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  431. }
  432. };
  433. #endif
  434. class U8X8_SSD1306_128X64_NONAME_3W_SW_SPI : public U8X8 {
  435. public: U8X8_SSD1306_128X64_NONAME_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  436. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x64_noname, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  437. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  438. }
  439. };
  440. class U8X8_SSD1306_128X64_NONAME_6800 : public U8X8 {
  441. public: U8X8_SSD1306_128X64_NONAME_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  442. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x64_noname, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  443. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  444. }
  445. };
  446. class U8X8_SSD1306_128X64_NONAME_8080 : public U8X8 {
  447. public: U8X8_SSD1306_128X64_NONAME_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  448. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x64_noname, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  449. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  450. }
  451. };
  452. class U8X8_SSD1306_128X64_VCOMH0_4W_SW_SPI : public U8X8 {
  453. public: U8X8_SSD1306_128X64_VCOMH0_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  454. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x64_vcomh0, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  455. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  456. }
  457. };
  458. #if defined U8G2_USE_HW_SPI
  459. class U8X8_SSD1306_128X64_VCOMH0_4W_HW_SPI : public U8X8 {
  460. public: U8X8_SSD1306_128X64_VCOMH0_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  461. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x64_vcomh0, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  462. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  463. }
  464. };
  465. #endif
  466. class U8X8_SSD1306_128X64_VCOMH0_3W_SW_SPI : public U8X8 {
  467. public: U8X8_SSD1306_128X64_VCOMH0_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  468. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x64_vcomh0, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  469. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  470. }
  471. };
  472. class U8X8_SSD1306_128X64_VCOMH0_6800 : public U8X8 {
  473. public: U8X8_SSD1306_128X64_VCOMH0_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  474. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x64_vcomh0, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  475. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  476. }
  477. };
  478. class U8X8_SSD1306_128X64_VCOMH0_8080 : public U8X8 {
  479. public: U8X8_SSD1306_128X64_VCOMH0_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  480. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x64_vcomh0, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  481. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  482. }
  483. };
  484. class U8X8_SSD1306_128X64_ALT0_4W_SW_SPI : public U8X8 {
  485. public: U8X8_SSD1306_128X64_ALT0_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  486. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x64_alt0, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  487. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  488. }
  489. };
  490. #if defined U8G2_USE_HW_SPI
  491. class U8X8_SSD1306_128X64_ALT0_4W_HW_SPI : public U8X8 {
  492. public: U8X8_SSD1306_128X64_ALT0_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  493. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x64_alt0, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  494. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  495. }
  496. };
  497. #endif
  498. class U8X8_SSD1306_128X64_ALT0_3W_SW_SPI : public U8X8 {
  499. public: U8X8_SSD1306_128X64_ALT0_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  500. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x64_alt0, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  501. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  502. }
  503. };
  504. class U8X8_SSD1306_128X64_ALT0_6800 : public U8X8 {
  505. public: U8X8_SSD1306_128X64_ALT0_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  506. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x64_alt0, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  507. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  508. }
  509. };
  510. class U8X8_SSD1306_128X64_ALT0_8080 : public U8X8 {
  511. public: U8X8_SSD1306_128X64_ALT0_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  512. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x64_alt0, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  513. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  514. }
  515. };
  516. class U8X8_SSD1306_128X64_NONAME_SW_I2C : public U8X8 {
  517. public: U8X8_SSD1306_128X64_NONAME_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  518. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x64_noname, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  519. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  520. }
  521. };
  522. #if defined U8G2_USE_HW_I2C
  523. class U8X8_SSD1306_128X64_NONAME_HW_I2C : public U8X8 {
  524. public: U8X8_SSD1306_128X64_NONAME_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  525. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x64_noname, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  526. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  527. }
  528. };
  529. #endif
  530. class U8X8_SSD1306_128X64_VCOMH0_SW_I2C : public U8X8 {
  531. public: U8X8_SSD1306_128X64_VCOMH0_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  532. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x64_vcomh0, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  533. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  534. }
  535. };
  536. #if defined U8G2_USE_HW_I2C
  537. class U8X8_SSD1306_128X64_VCOMH0_HW_I2C : public U8X8 {
  538. public: U8X8_SSD1306_128X64_VCOMH0_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  539. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x64_vcomh0, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  540. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  541. }
  542. };
  543. #endif
  544. class U8X8_SSD1306_128X64_ALT0_SW_I2C : public U8X8 {
  545. public: U8X8_SSD1306_128X64_ALT0_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  546. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x64_alt0, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  547. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  548. }
  549. };
  550. #if defined U8G2_USE_HW_I2C
  551. class U8X8_SSD1306_128X64_ALT0_HW_I2C : public U8X8 {
  552. public: U8X8_SSD1306_128X64_ALT0_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  553. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x64_alt0, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  554. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  555. }
  556. };
  557. #endif
  558. class U8X8_SSD1306_72X40_ER_4W_SW_SPI : public U8X8 {
  559. public: U8X8_SSD1306_72X40_ER_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  560. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_72x40_er, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  561. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  562. }
  563. };
  564. #if defined U8G2_USE_HW_SPI
  565. class U8X8_SSD1306_72X40_ER_4W_HW_SPI : public U8X8 {
  566. public: U8X8_SSD1306_72X40_ER_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  567. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_72x40_er, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  568. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  569. }
  570. };
  571. #endif
  572. class U8X8_SSD1306_72X40_ER_3W_SW_SPI : public U8X8 {
  573. public: U8X8_SSD1306_72X40_ER_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  574. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_72x40_er, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  575. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  576. }
  577. };
  578. class U8X8_SSD1306_72X40_ER_6800 : public U8X8 {
  579. public: U8X8_SSD1306_72X40_ER_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  580. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_72x40_er, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  581. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  582. }
  583. };
  584. class U8X8_SSD1306_72X40_ER_8080 : public U8X8 {
  585. public: U8X8_SSD1306_72X40_ER_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  586. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_72x40_er, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  587. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  588. }
  589. };
  590. class U8X8_SSD1306_72X40_ER_SW_I2C : public U8X8 {
  591. public: U8X8_SSD1306_72X40_ER_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  592. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_72x40_er, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  593. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  594. }
  595. };
  596. #if defined U8G2_USE_HW_I2C
  597. class U8X8_SSD1306_72X40_ER_HW_I2C : public U8X8 {
  598. public: U8X8_SSD1306_72X40_ER_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  599. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_72x40_er, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  600. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  601. }
  602. };
  603. #endif
  604. class U8X8_SH1106_128X64_NONAME_4W_SW_SPI : public U8X8 {
  605. public: U8X8_SH1106_128X64_NONAME_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  606. u8x8_Setup(getU8x8(), u8x8_d_sh1106_128x64_noname, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  607. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  608. }
  609. };
  610. #if defined U8G2_USE_HW_SPI
  611. class U8X8_SH1106_128X64_NONAME_4W_HW_SPI : public U8X8 {
  612. public: U8X8_SH1106_128X64_NONAME_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  613. u8x8_Setup(getU8x8(), u8x8_d_sh1106_128x64_noname, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  614. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  615. }
  616. };
  617. #endif
  618. class U8X8_SH1106_128X64_NONAME_3W_SW_SPI : public U8X8 {
  619. public: U8X8_SH1106_128X64_NONAME_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  620. u8x8_Setup(getU8x8(), u8x8_d_sh1106_128x64_noname, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  621. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  622. }
  623. };
  624. class U8X8_SH1106_128X64_NONAME_6800 : public U8X8 {
  625. public: U8X8_SH1106_128X64_NONAME_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  626. u8x8_Setup(getU8x8(), u8x8_d_sh1106_128x64_noname, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  627. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  628. }
  629. };
  630. class U8X8_SH1106_128X64_NONAME_8080 : public U8X8 {
  631. public: U8X8_SH1106_128X64_NONAME_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  632. u8x8_Setup(getU8x8(), u8x8_d_sh1106_128x64_noname, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  633. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  634. }
  635. };
  636. class U8X8_SH1106_128X64_VCOMH0_4W_SW_SPI : public U8X8 {
  637. public: U8X8_SH1106_128X64_VCOMH0_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  638. u8x8_Setup(getU8x8(), u8x8_d_sh1106_128x64_vcomh0, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  639. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  640. }
  641. };
  642. #if defined U8G2_USE_HW_SPI
  643. class U8X8_SH1106_128X64_VCOMH0_4W_HW_SPI : public U8X8 {
  644. public: U8X8_SH1106_128X64_VCOMH0_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  645. u8x8_Setup(getU8x8(), u8x8_d_sh1106_128x64_vcomh0, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  646. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  647. }
  648. };
  649. #endif
  650. class U8X8_SH1106_128X64_VCOMH0_3W_SW_SPI : public U8X8 {
  651. public: U8X8_SH1106_128X64_VCOMH0_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  652. u8x8_Setup(getU8x8(), u8x8_d_sh1106_128x64_vcomh0, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  653. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  654. }
  655. };
  656. class U8X8_SH1106_128X64_VCOMH0_6800 : public U8X8 {
  657. public: U8X8_SH1106_128X64_VCOMH0_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  658. u8x8_Setup(getU8x8(), u8x8_d_sh1106_128x64_vcomh0, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  659. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  660. }
  661. };
  662. class U8X8_SH1106_128X64_VCOMH0_8080 : public U8X8 {
  663. public: U8X8_SH1106_128X64_VCOMH0_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  664. u8x8_Setup(getU8x8(), u8x8_d_sh1106_128x64_vcomh0, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  665. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  666. }
  667. };
  668. class U8X8_SH1106_128X64_WINSTAR_4W_SW_SPI : public U8X8 {
  669. public: U8X8_SH1106_128X64_WINSTAR_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  670. u8x8_Setup(getU8x8(), u8x8_d_sh1106_128x64_winstar, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  671. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  672. }
  673. };
  674. #if defined U8G2_USE_HW_SPI
  675. class U8X8_SH1106_128X64_WINSTAR_4W_HW_SPI : public U8X8 {
  676. public: U8X8_SH1106_128X64_WINSTAR_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  677. u8x8_Setup(getU8x8(), u8x8_d_sh1106_128x64_winstar, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  678. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  679. }
  680. };
  681. #endif
  682. class U8X8_SH1106_128X64_WINSTAR_3W_SW_SPI : public U8X8 {
  683. public: U8X8_SH1106_128X64_WINSTAR_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  684. u8x8_Setup(getU8x8(), u8x8_d_sh1106_128x64_winstar, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  685. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  686. }
  687. };
  688. class U8X8_SH1106_128X64_WINSTAR_6800 : public U8X8 {
  689. public: U8X8_SH1106_128X64_WINSTAR_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  690. u8x8_Setup(getU8x8(), u8x8_d_sh1106_128x64_winstar, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  691. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  692. }
  693. };
  694. class U8X8_SH1106_128X64_WINSTAR_8080 : public U8X8 {
  695. public: U8X8_SH1106_128X64_WINSTAR_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  696. u8x8_Setup(getU8x8(), u8x8_d_sh1106_128x64_winstar, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  697. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  698. }
  699. };
  700. class U8X8_SH1106_128X64_NONAME_SW_I2C : public U8X8 {
  701. public: U8X8_SH1106_128X64_NONAME_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  702. u8x8_Setup(getU8x8(), u8x8_d_sh1106_128x64_noname, u8x8_cad_ssd13xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  703. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  704. }
  705. };
  706. #if defined U8G2_USE_HW_I2C
  707. class U8X8_SH1106_128X64_NONAME_HW_I2C : public U8X8 {
  708. public: U8X8_SH1106_128X64_NONAME_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  709. u8x8_Setup(getU8x8(), u8x8_d_sh1106_128x64_noname, u8x8_cad_ssd13xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  710. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  711. }
  712. };
  713. #endif
  714. class U8X8_SH1106_128X64_VCOMH0_SW_I2C : public U8X8 {
  715. public: U8X8_SH1106_128X64_VCOMH0_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  716. u8x8_Setup(getU8x8(), u8x8_d_sh1106_128x64_vcomh0, u8x8_cad_ssd13xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  717. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  718. }
  719. };
  720. #if defined U8G2_USE_HW_I2C
  721. class U8X8_SH1106_128X64_VCOMH0_HW_I2C : public U8X8 {
  722. public: U8X8_SH1106_128X64_VCOMH0_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  723. u8x8_Setup(getU8x8(), u8x8_d_sh1106_128x64_vcomh0, u8x8_cad_ssd13xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  724. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  725. }
  726. };
  727. #endif
  728. class U8X8_SH1106_128X64_WINSTAR_SW_I2C : public U8X8 {
  729. public: U8X8_SH1106_128X64_WINSTAR_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  730. u8x8_Setup(getU8x8(), u8x8_d_sh1106_128x64_winstar, u8x8_cad_ssd13xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  731. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  732. }
  733. };
  734. #if defined U8G2_USE_HW_I2C
  735. class U8X8_SH1106_128X64_WINSTAR_HW_I2C : public U8X8 {
  736. public: U8X8_SH1106_128X64_WINSTAR_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  737. u8x8_Setup(getU8x8(), u8x8_d_sh1106_128x64_winstar, u8x8_cad_ssd13xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  738. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  739. }
  740. };
  741. #endif
  742. class U8X8_SH1106_72X40_WISE_4W_SW_SPI : public U8X8 {
  743. public: U8X8_SH1106_72X40_WISE_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  744. u8x8_Setup(getU8x8(), u8x8_d_sh1106_72x40_wise, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  745. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  746. }
  747. };
  748. #if defined U8G2_USE_HW_SPI
  749. class U8X8_SH1106_72X40_WISE_4W_HW_SPI : public U8X8 {
  750. public: U8X8_SH1106_72X40_WISE_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  751. u8x8_Setup(getU8x8(), u8x8_d_sh1106_72x40_wise, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  752. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  753. }
  754. };
  755. #endif
  756. class U8X8_SH1106_72X40_WISE_3W_SW_SPI : public U8X8 {
  757. public: U8X8_SH1106_72X40_WISE_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  758. u8x8_Setup(getU8x8(), u8x8_d_sh1106_72x40_wise, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  759. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  760. }
  761. };
  762. class U8X8_SH1106_72X40_WISE_6800 : public U8X8 {
  763. public: U8X8_SH1106_72X40_WISE_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  764. u8x8_Setup(getU8x8(), u8x8_d_sh1106_72x40_wise, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  765. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  766. }
  767. };
  768. class U8X8_SH1106_72X40_WISE_8080 : public U8X8 {
  769. public: U8X8_SH1106_72X40_WISE_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  770. u8x8_Setup(getU8x8(), u8x8_d_sh1106_72x40_wise, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  771. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  772. }
  773. };
  774. class U8X8_SH1106_72X40_WISE_SW_I2C : public U8X8 {
  775. public: U8X8_SH1106_72X40_WISE_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  776. u8x8_Setup(getU8x8(), u8x8_d_sh1106_72x40_wise, u8x8_cad_ssd13xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  777. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  778. }
  779. };
  780. #if defined U8G2_USE_HW_I2C
  781. class U8X8_SH1106_72X40_WISE_HW_I2C : public U8X8 {
  782. public: U8X8_SH1106_72X40_WISE_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  783. u8x8_Setup(getU8x8(), u8x8_d_sh1106_72x40_wise, u8x8_cad_ssd13xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  784. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  785. }
  786. };
  787. #endif
  788. class U8X8_SH1106_64X32_4W_SW_SPI : public U8X8 {
  789. public: U8X8_SH1106_64X32_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  790. u8x8_Setup(getU8x8(), u8x8_d_sh1106_64x32, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  791. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  792. }
  793. };
  794. #if defined U8G2_USE_HW_SPI
  795. class U8X8_SH1106_64X32_4W_HW_SPI : public U8X8 {
  796. public: U8X8_SH1106_64X32_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  797. u8x8_Setup(getU8x8(), u8x8_d_sh1106_64x32, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  798. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  799. }
  800. };
  801. #endif
  802. class U8X8_SH1106_64X32_3W_SW_SPI : public U8X8 {
  803. public: U8X8_SH1106_64X32_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  804. u8x8_Setup(getU8x8(), u8x8_d_sh1106_64x32, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  805. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  806. }
  807. };
  808. class U8X8_SH1106_64X32_6800 : public U8X8 {
  809. public: U8X8_SH1106_64X32_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  810. u8x8_Setup(getU8x8(), u8x8_d_sh1106_64x32, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  811. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  812. }
  813. };
  814. class U8X8_SH1106_64X32_8080 : public U8X8 {
  815. public: U8X8_SH1106_64X32_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  816. u8x8_Setup(getU8x8(), u8x8_d_sh1106_64x32, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  817. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  818. }
  819. };
  820. class U8X8_SH1106_64X32_SW_I2C : public U8X8 {
  821. public: U8X8_SH1106_64X32_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  822. u8x8_Setup(getU8x8(), u8x8_d_sh1106_64x32, u8x8_cad_ssd13xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  823. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  824. }
  825. };
  826. #if defined U8G2_USE_HW_I2C
  827. class U8X8_SH1106_64X32_HW_I2C : public U8X8 {
  828. public: U8X8_SH1106_64X32_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  829. u8x8_Setup(getU8x8(), u8x8_d_sh1106_64x32, u8x8_cad_ssd13xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  830. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  831. }
  832. };
  833. #endif
  834. class U8X8_SH1107_64X128_4W_SW_SPI : public U8X8 {
  835. public: U8X8_SH1107_64X128_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  836. u8x8_Setup(getU8x8(), u8x8_d_sh1107_64x128, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  837. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  838. }
  839. };
  840. #if defined U8G2_USE_HW_SPI
  841. class U8X8_SH1107_64X128_4W_HW_SPI : public U8X8 {
  842. public: U8X8_SH1107_64X128_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  843. u8x8_Setup(getU8x8(), u8x8_d_sh1107_64x128, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  844. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  845. }
  846. };
  847. #endif
  848. class U8X8_SH1107_64X128_3W_SW_SPI : public U8X8 {
  849. public: U8X8_SH1107_64X128_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  850. u8x8_Setup(getU8x8(), u8x8_d_sh1107_64x128, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  851. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  852. }
  853. };
  854. class U8X8_SH1107_64X128_6800 : public U8X8 {
  855. public: U8X8_SH1107_64X128_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  856. u8x8_Setup(getU8x8(), u8x8_d_sh1107_64x128, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  857. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  858. }
  859. };
  860. class U8X8_SH1107_64X128_8080 : public U8X8 {
  861. public: U8X8_SH1107_64X128_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  862. u8x8_Setup(getU8x8(), u8x8_d_sh1107_64x128, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  863. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  864. }
  865. };
  866. class U8X8_SH1107_64X128_SW_I2C : public U8X8 {
  867. public: U8X8_SH1107_64X128_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  868. u8x8_Setup(getU8x8(), u8x8_d_sh1107_64x128, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  869. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  870. }
  871. };
  872. #if defined U8G2_USE_HW_I2C
  873. class U8X8_SH1107_64X128_HW_I2C : public U8X8 {
  874. public: U8X8_SH1107_64X128_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  875. u8x8_Setup(getU8x8(), u8x8_d_sh1107_64x128, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  876. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  877. }
  878. };
  879. #endif
  880. class U8X8_SH1107_SEEED_96X96_4W_SW_SPI : public U8X8 {
  881. public: U8X8_SH1107_SEEED_96X96_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  882. u8x8_Setup(getU8x8(), u8x8_d_sh1107_seeed_96x96, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  883. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  884. }
  885. };
  886. #if defined U8G2_USE_HW_SPI
  887. class U8X8_SH1107_SEEED_96X96_4W_HW_SPI : public U8X8 {
  888. public: U8X8_SH1107_SEEED_96X96_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  889. u8x8_Setup(getU8x8(), u8x8_d_sh1107_seeed_96x96, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  890. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  891. }
  892. };
  893. #endif
  894. class U8X8_SH1107_SEEED_96X96_3W_SW_SPI : public U8X8 {
  895. public: U8X8_SH1107_SEEED_96X96_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  896. u8x8_Setup(getU8x8(), u8x8_d_sh1107_seeed_96x96, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  897. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  898. }
  899. };
  900. class U8X8_SH1107_SEEED_96X96_6800 : public U8X8 {
  901. public: U8X8_SH1107_SEEED_96X96_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  902. u8x8_Setup(getU8x8(), u8x8_d_sh1107_seeed_96x96, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  903. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  904. }
  905. };
  906. class U8X8_SH1107_SEEED_96X96_8080 : public U8X8 {
  907. public: U8X8_SH1107_SEEED_96X96_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  908. u8x8_Setup(getU8x8(), u8x8_d_sh1107_seeed_96x96, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  909. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  910. }
  911. };
  912. class U8X8_SH1107_SEEED_96X96_SW_I2C : public U8X8 {
  913. public: U8X8_SH1107_SEEED_96X96_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  914. u8x8_Setup(getU8x8(), u8x8_d_sh1107_seeed_96x96, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  915. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  916. }
  917. };
  918. #if defined U8G2_USE_HW_I2C
  919. class U8X8_SH1107_SEEED_96X96_HW_I2C : public U8X8 {
  920. public: U8X8_SH1107_SEEED_96X96_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  921. u8x8_Setup(getU8x8(), u8x8_d_sh1107_seeed_96x96, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  922. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  923. }
  924. };
  925. #endif
  926. class U8X8_SH1107_128X80_4W_SW_SPI : public U8X8 {
  927. public: U8X8_SH1107_128X80_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  928. u8x8_Setup(getU8x8(), u8x8_d_sh1107_128x80, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  929. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  930. }
  931. };
  932. #if defined U8G2_USE_HW_SPI
  933. class U8X8_SH1107_128X80_4W_HW_SPI : public U8X8 {
  934. public: U8X8_SH1107_128X80_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  935. u8x8_Setup(getU8x8(), u8x8_d_sh1107_128x80, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  936. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  937. }
  938. };
  939. #endif
  940. class U8X8_SH1107_128X80_3W_SW_SPI : public U8X8 {
  941. public: U8X8_SH1107_128X80_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  942. u8x8_Setup(getU8x8(), u8x8_d_sh1107_128x80, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  943. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  944. }
  945. };
  946. class U8X8_SH1107_128X80_6800 : public U8X8 {
  947. public: U8X8_SH1107_128X80_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  948. u8x8_Setup(getU8x8(), u8x8_d_sh1107_128x80, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  949. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  950. }
  951. };
  952. class U8X8_SH1107_128X80_8080 : public U8X8 {
  953. public: U8X8_SH1107_128X80_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  954. u8x8_Setup(getU8x8(), u8x8_d_sh1107_128x80, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  955. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  956. }
  957. };
  958. class U8X8_SH1107_128X80_SW_I2C : public U8X8 {
  959. public: U8X8_SH1107_128X80_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  960. u8x8_Setup(getU8x8(), u8x8_d_sh1107_128x80, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  961. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  962. }
  963. };
  964. #if defined U8G2_USE_HW_I2C
  965. class U8X8_SH1107_128X80_HW_I2C : public U8X8 {
  966. public: U8X8_SH1107_128X80_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  967. u8x8_Setup(getU8x8(), u8x8_d_sh1107_128x80, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  968. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  969. }
  970. };
  971. #endif
  972. class U8X8_SH1107_128X128_4W_SW_SPI : public U8X8 {
  973. public: U8X8_SH1107_128X128_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  974. u8x8_Setup(getU8x8(), u8x8_d_sh1107_128x128, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  975. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  976. }
  977. };
  978. #if defined U8G2_USE_HW_SPI
  979. class U8X8_SH1107_128X128_4W_HW_SPI : public U8X8 {
  980. public: U8X8_SH1107_128X128_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  981. u8x8_Setup(getU8x8(), u8x8_d_sh1107_128x128, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  982. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  983. }
  984. };
  985. #endif
  986. class U8X8_SH1107_128X128_3W_SW_SPI : public U8X8 {
  987. public: U8X8_SH1107_128X128_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  988. u8x8_Setup(getU8x8(), u8x8_d_sh1107_128x128, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  989. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  990. }
  991. };
  992. class U8X8_SH1107_128X128_6800 : public U8X8 {
  993. public: U8X8_SH1107_128X128_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  994. u8x8_Setup(getU8x8(), u8x8_d_sh1107_128x128, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  995. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  996. }
  997. };
  998. class U8X8_SH1107_128X128_8080 : public U8X8 {
  999. public: U8X8_SH1107_128X128_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1000. u8x8_Setup(getU8x8(), u8x8_d_sh1107_128x128, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  1001. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1002. }
  1003. };
  1004. class U8X8_SH1107_PIMORONI_128X128_4W_SW_SPI : public U8X8 {
  1005. public: U8X8_SH1107_PIMORONI_128X128_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1006. u8x8_Setup(getU8x8(), u8x8_d_sh1107_pimoroni_128x128, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1007. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  1008. }
  1009. };
  1010. #if defined U8G2_USE_HW_SPI
  1011. class U8X8_SH1107_PIMORONI_128X128_4W_HW_SPI : public U8X8 {
  1012. public: U8X8_SH1107_PIMORONI_128X128_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1013. u8x8_Setup(getU8x8(), u8x8_d_sh1107_pimoroni_128x128, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  1014. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  1015. }
  1016. };
  1017. #endif
  1018. class U8X8_SH1107_PIMORONI_128X128_3W_SW_SPI : public U8X8 {
  1019. public: U8X8_SH1107_PIMORONI_128X128_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1020. u8x8_Setup(getU8x8(), u8x8_d_sh1107_pimoroni_128x128, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1021. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  1022. }
  1023. };
  1024. class U8X8_SH1107_PIMORONI_128X128_6800 : public U8X8 {
  1025. public: U8X8_SH1107_PIMORONI_128X128_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1026. u8x8_Setup(getU8x8(), u8x8_d_sh1107_pimoroni_128x128, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  1027. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1028. }
  1029. };
  1030. class U8X8_SH1107_PIMORONI_128X128_8080 : public U8X8 {
  1031. public: U8X8_SH1107_PIMORONI_128X128_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1032. u8x8_Setup(getU8x8(), u8x8_d_sh1107_pimoroni_128x128, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  1033. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1034. }
  1035. };
  1036. class U8X8_SH1107_SEEED_128X128_4W_SW_SPI : public U8X8 {
  1037. public: U8X8_SH1107_SEEED_128X128_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1038. u8x8_Setup(getU8x8(), u8x8_d_sh1107_seeed_128x128, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1039. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  1040. }
  1041. };
  1042. #if defined U8G2_USE_HW_SPI
  1043. class U8X8_SH1107_SEEED_128X128_4W_HW_SPI : public U8X8 {
  1044. public: U8X8_SH1107_SEEED_128X128_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1045. u8x8_Setup(getU8x8(), u8x8_d_sh1107_seeed_128x128, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  1046. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  1047. }
  1048. };
  1049. #endif
  1050. class U8X8_SH1107_SEEED_128X128_3W_SW_SPI : public U8X8 {
  1051. public: U8X8_SH1107_SEEED_128X128_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1052. u8x8_Setup(getU8x8(), u8x8_d_sh1107_seeed_128x128, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1053. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  1054. }
  1055. };
  1056. class U8X8_SH1107_SEEED_128X128_6800 : public U8X8 {
  1057. public: U8X8_SH1107_SEEED_128X128_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1058. u8x8_Setup(getU8x8(), u8x8_d_sh1107_seeed_128x128, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  1059. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1060. }
  1061. };
  1062. class U8X8_SH1107_SEEED_128X128_8080 : public U8X8 {
  1063. public: U8X8_SH1107_SEEED_128X128_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1064. u8x8_Setup(getU8x8(), u8x8_d_sh1107_seeed_128x128, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  1065. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1066. }
  1067. };
  1068. class U8X8_SH1107_128X128_SW_I2C : public U8X8 {
  1069. public: U8X8_SH1107_128X128_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1070. u8x8_Setup(getU8x8(), u8x8_d_sh1107_128x128, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  1071. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  1072. }
  1073. };
  1074. #if defined U8G2_USE_HW_I2C
  1075. class U8X8_SH1107_128X128_HW_I2C : public U8X8 {
  1076. public: U8X8_SH1107_128X128_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  1077. u8x8_Setup(getU8x8(), u8x8_d_sh1107_128x128, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  1078. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  1079. }
  1080. };
  1081. #endif
  1082. class U8X8_SH1107_PIMORONI_128X128_SW_I2C : public U8X8 {
  1083. public: U8X8_SH1107_PIMORONI_128X128_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1084. u8x8_Setup(getU8x8(), u8x8_d_sh1107_pimoroni_128x128, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  1085. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  1086. }
  1087. };
  1088. #if defined U8G2_USE_HW_I2C
  1089. class U8X8_SH1107_PIMORONI_128X128_HW_I2C : public U8X8 {
  1090. public: U8X8_SH1107_PIMORONI_128X128_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  1091. u8x8_Setup(getU8x8(), u8x8_d_sh1107_pimoroni_128x128, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  1092. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  1093. }
  1094. };
  1095. #endif
  1096. class U8X8_SH1107_SEEED_128X128_SW_I2C : public U8X8 {
  1097. public: U8X8_SH1107_SEEED_128X128_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1098. u8x8_Setup(getU8x8(), u8x8_d_sh1107_seeed_128x128, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  1099. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  1100. }
  1101. };
  1102. #if defined U8G2_USE_HW_I2C
  1103. class U8X8_SH1107_SEEED_128X128_HW_I2C : public U8X8 {
  1104. public: U8X8_SH1107_SEEED_128X128_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  1105. u8x8_Setup(getU8x8(), u8x8_d_sh1107_seeed_128x128, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  1106. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  1107. }
  1108. };
  1109. #endif
  1110. class U8X8_SH1108_160X160_4W_SW_SPI : public U8X8 {
  1111. public: U8X8_SH1108_160X160_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1112. u8x8_Setup(getU8x8(), u8x8_d_sh1108_160x160, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1113. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  1114. }
  1115. };
  1116. #if defined U8G2_USE_HW_SPI
  1117. class U8X8_SH1108_160X160_4W_HW_SPI : public U8X8 {
  1118. public: U8X8_SH1108_160X160_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1119. u8x8_Setup(getU8x8(), u8x8_d_sh1108_160x160, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  1120. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  1121. }
  1122. };
  1123. #endif
  1124. class U8X8_SH1108_160X160_3W_SW_SPI : public U8X8 {
  1125. public: U8X8_SH1108_160X160_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1126. u8x8_Setup(getU8x8(), u8x8_d_sh1108_160x160, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1127. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  1128. }
  1129. };
  1130. class U8X8_SH1108_160X160_6800 : public U8X8 {
  1131. public: U8X8_SH1108_160X160_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1132. u8x8_Setup(getU8x8(), u8x8_d_sh1108_160x160, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  1133. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1134. }
  1135. };
  1136. class U8X8_SH1108_160X160_8080 : public U8X8 {
  1137. public: U8X8_SH1108_160X160_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1138. u8x8_Setup(getU8x8(), u8x8_d_sh1108_160x160, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  1139. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1140. }
  1141. };
  1142. class U8X8_SH1108_160X160_SW_I2C : public U8X8 {
  1143. public: U8X8_SH1108_160X160_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1144. u8x8_Setup(getU8x8(), u8x8_d_sh1108_160x160, u8x8_cad_ssd13xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  1145. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  1146. }
  1147. };
  1148. #if defined U8G2_USE_HW_I2C
  1149. class U8X8_SH1108_160X160_HW_I2C : public U8X8 {
  1150. public: U8X8_SH1108_160X160_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  1151. u8x8_Setup(getU8x8(), u8x8_d_sh1108_160x160, u8x8_cad_ssd13xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  1152. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  1153. }
  1154. };
  1155. #endif
  1156. class U8X8_SH1122_256X64_4W_SW_SPI : public U8X8 {
  1157. public: U8X8_SH1122_256X64_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1158. u8x8_Setup(getU8x8(), u8x8_d_sh1122_256x64, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1159. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  1160. }
  1161. };
  1162. #if defined U8G2_USE_HW_SPI
  1163. class U8X8_SH1122_256X64_4W_HW_SPI : public U8X8 {
  1164. public: U8X8_SH1122_256X64_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1165. u8x8_Setup(getU8x8(), u8x8_d_sh1122_256x64, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  1166. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  1167. }
  1168. };
  1169. #endif
  1170. class U8X8_SH1122_256X64_3W_SW_SPI : public U8X8 {
  1171. public: U8X8_SH1122_256X64_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1172. u8x8_Setup(getU8x8(), u8x8_d_sh1122_256x64, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1173. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  1174. }
  1175. };
  1176. class U8X8_SH1122_256X64_6800 : public U8X8 {
  1177. public: U8X8_SH1122_256X64_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1178. u8x8_Setup(getU8x8(), u8x8_d_sh1122_256x64, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  1179. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1180. }
  1181. };
  1182. class U8X8_SH1122_256X64_8080 : public U8X8 {
  1183. public: U8X8_SH1122_256X64_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1184. u8x8_Setup(getU8x8(), u8x8_d_sh1122_256x64, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  1185. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1186. }
  1187. };
  1188. class U8X8_SH1122_256X64_SW_I2C : public U8X8 {
  1189. public: U8X8_SH1122_256X64_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1190. u8x8_Setup(getU8x8(), u8x8_d_sh1122_256x64, u8x8_cad_ssd13xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  1191. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  1192. }
  1193. };
  1194. #if defined U8G2_USE_HW_I2C
  1195. class U8X8_SH1122_256X64_HW_I2C : public U8X8 {
  1196. public: U8X8_SH1122_256X64_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  1197. u8x8_Setup(getU8x8(), u8x8_d_sh1122_256x64, u8x8_cad_ssd13xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  1198. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  1199. }
  1200. };
  1201. #endif
  1202. class U8X8_SSD1306_128X32_UNIVISION_4W_SW_SPI : public U8X8 {
  1203. public: U8X8_SSD1306_128X32_UNIVISION_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1204. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x32_univision, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1205. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  1206. }
  1207. };
  1208. #if defined U8G2_USE_HW_SPI
  1209. class U8X8_SSD1306_128X32_UNIVISION_4W_HW_SPI : public U8X8 {
  1210. public: U8X8_SSD1306_128X32_UNIVISION_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1211. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x32_univision, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  1212. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  1213. }
  1214. };
  1215. #endif
  1216. class U8X8_SSD1306_128X32_UNIVISION_3W_SW_SPI : public U8X8 {
  1217. public: U8X8_SSD1306_128X32_UNIVISION_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1218. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x32_univision, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1219. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  1220. }
  1221. };
  1222. class U8X8_SSD1306_128X32_UNIVISION_6800 : public U8X8 {
  1223. public: U8X8_SSD1306_128X32_UNIVISION_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1224. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x32_univision, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  1225. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1226. }
  1227. };
  1228. class U8X8_SSD1306_128X32_UNIVISION_8080 : public U8X8 {
  1229. public: U8X8_SSD1306_128X32_UNIVISION_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1230. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x32_univision, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  1231. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1232. }
  1233. };
  1234. class U8X8_SSD1306_128X32_WINSTAR_4W_SW_SPI : public U8X8 {
  1235. public: U8X8_SSD1306_128X32_WINSTAR_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1236. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x32_winstar, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1237. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  1238. }
  1239. };
  1240. #if defined U8G2_USE_HW_SPI
  1241. class U8X8_SSD1306_128X32_WINSTAR_4W_HW_SPI : public U8X8 {
  1242. public: U8X8_SSD1306_128X32_WINSTAR_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1243. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x32_winstar, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  1244. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  1245. }
  1246. };
  1247. #endif
  1248. class U8X8_SSD1306_128X32_WINSTAR_3W_SW_SPI : public U8X8 {
  1249. public: U8X8_SSD1306_128X32_WINSTAR_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1250. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x32_winstar, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1251. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  1252. }
  1253. };
  1254. class U8X8_SSD1306_128X32_WINSTAR_6800 : public U8X8 {
  1255. public: U8X8_SSD1306_128X32_WINSTAR_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1256. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x32_winstar, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  1257. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1258. }
  1259. };
  1260. class U8X8_SSD1306_128X32_WINSTAR_8080 : public U8X8 {
  1261. public: U8X8_SSD1306_128X32_WINSTAR_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1262. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x32_winstar, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  1263. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1264. }
  1265. };
  1266. class U8X8_SSD1306_128X32_UNIVISION_SW_I2C : public U8X8 {
  1267. public: U8X8_SSD1306_128X32_UNIVISION_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1268. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x32_univision, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  1269. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  1270. }
  1271. };
  1272. #if defined U8G2_USE_HW_I2C
  1273. class U8X8_SSD1306_128X32_UNIVISION_HW_I2C : public U8X8 {
  1274. public: U8X8_SSD1306_128X32_UNIVISION_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  1275. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x32_univision, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  1276. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  1277. }
  1278. };
  1279. #endif
  1280. class U8X8_SSD1306_128X32_WINSTAR_SW_I2C : public U8X8 {
  1281. public: U8X8_SSD1306_128X32_WINSTAR_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1282. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x32_winstar, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  1283. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  1284. }
  1285. };
  1286. #if defined U8G2_USE_HW_I2C
  1287. class U8X8_SSD1306_128X32_WINSTAR_HW_I2C : public U8X8 {
  1288. public: U8X8_SSD1306_128X32_WINSTAR_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  1289. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_128x32_winstar, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  1290. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  1291. }
  1292. };
  1293. #endif
  1294. class U8X8_SSD1306_102X64_EA_OLEDS102_4W_SW_SPI : public U8X8 {
  1295. public: U8X8_SSD1306_102X64_EA_OLEDS102_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1296. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_102x64_ea_oleds102, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1297. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  1298. }
  1299. };
  1300. #if defined U8G2_USE_HW_SPI
  1301. class U8X8_SSD1306_102X64_EA_OLEDS102_4W_HW_SPI : public U8X8 {
  1302. public: U8X8_SSD1306_102X64_EA_OLEDS102_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1303. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_102x64_ea_oleds102, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  1304. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  1305. }
  1306. };
  1307. #endif
  1308. class U8X8_SSD1306_102X64_EA_OLEDS102_3W_SW_SPI : public U8X8 {
  1309. public: U8X8_SSD1306_102X64_EA_OLEDS102_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1310. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_102x64_ea_oleds102, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1311. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  1312. }
  1313. };
  1314. class U8X8_SSD1306_102X64_EA_OLEDS102_6800 : public U8X8 {
  1315. public: U8X8_SSD1306_102X64_EA_OLEDS102_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1316. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_102x64_ea_oleds102, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  1317. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1318. }
  1319. };
  1320. class U8X8_SSD1306_102X64_EA_OLEDS102_8080 : public U8X8 {
  1321. public: U8X8_SSD1306_102X64_EA_OLEDS102_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1322. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_102x64_ea_oleds102, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  1323. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1324. }
  1325. };
  1326. class U8X8_SSD1306_102X64_EA_OLEDS102_SW_I2C : public U8X8 {
  1327. public: U8X8_SSD1306_102X64_EA_OLEDS102_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1328. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_102x64_ea_oleds102, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  1329. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  1330. }
  1331. };
  1332. #if defined U8G2_USE_HW_I2C
  1333. class U8X8_SSD1306_102X64_EA_OLEDS102_HW_I2C : public U8X8 {
  1334. public: U8X8_SSD1306_102X64_EA_OLEDS102_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  1335. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_102x64_ea_oleds102, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  1336. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  1337. }
  1338. };
  1339. #endif
  1340. class U8X8_SH1106_128X32_VISIONOX_4W_SW_SPI : public U8X8 {
  1341. public: U8X8_SH1106_128X32_VISIONOX_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1342. u8x8_Setup(getU8x8(), u8x8_d_sh1106_128x32_visionox, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1343. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  1344. }
  1345. };
  1346. #if defined U8G2_USE_HW_SPI
  1347. class U8X8_SH1106_128X32_VISIONOX_4W_HW_SPI : public U8X8 {
  1348. public: U8X8_SH1106_128X32_VISIONOX_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1349. u8x8_Setup(getU8x8(), u8x8_d_sh1106_128x32_visionox, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  1350. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  1351. }
  1352. };
  1353. #endif
  1354. class U8X8_SH1106_128X32_VISIONOX_3W_SW_SPI : public U8X8 {
  1355. public: U8X8_SH1106_128X32_VISIONOX_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1356. u8x8_Setup(getU8x8(), u8x8_d_sh1106_128x32_visionox, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1357. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  1358. }
  1359. };
  1360. class U8X8_SH1106_128X32_VISIONOX_6800 : public U8X8 {
  1361. public: U8X8_SH1106_128X32_VISIONOX_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1362. u8x8_Setup(getU8x8(), u8x8_d_sh1106_128x32_visionox, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  1363. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1364. }
  1365. };
  1366. class U8X8_SH1106_128X32_VISIONOX_8080 : public U8X8 {
  1367. public: U8X8_SH1106_128X32_VISIONOX_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1368. u8x8_Setup(getU8x8(), u8x8_d_sh1106_128x32_visionox, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  1369. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1370. }
  1371. };
  1372. class U8X8_SH1106_128X32_VISIONOX_SW_I2C : public U8X8 {
  1373. public: U8X8_SH1106_128X32_VISIONOX_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1374. u8x8_Setup(getU8x8(), u8x8_d_sh1106_128x32_visionox, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  1375. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  1376. }
  1377. };
  1378. #if defined U8G2_USE_HW_I2C
  1379. class U8X8_SH1106_128X32_VISIONOX_HW_I2C : public U8X8 {
  1380. public: U8X8_SH1106_128X32_VISIONOX_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  1381. u8x8_Setup(getU8x8(), u8x8_d_sh1106_128x32_visionox, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  1382. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  1383. }
  1384. };
  1385. #endif
  1386. class U8X8_SSD1306_64X48_ER_4W_SW_SPI : public U8X8 {
  1387. public: U8X8_SSD1306_64X48_ER_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1388. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_64x48_er, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1389. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  1390. }
  1391. };
  1392. #if defined U8G2_USE_HW_SPI
  1393. class U8X8_SSD1306_64X48_ER_4W_HW_SPI : public U8X8 {
  1394. public: U8X8_SSD1306_64X48_ER_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1395. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_64x48_er, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  1396. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  1397. }
  1398. };
  1399. #endif
  1400. class U8X8_SSD1306_64X48_ER_3W_SW_SPI : public U8X8 {
  1401. public: U8X8_SSD1306_64X48_ER_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1402. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_64x48_er, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1403. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  1404. }
  1405. };
  1406. class U8X8_SSD1306_64X48_ER_6800 : public U8X8 {
  1407. public: U8X8_SSD1306_64X48_ER_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1408. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_64x48_er, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  1409. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1410. }
  1411. };
  1412. class U8X8_SSD1306_64X48_ER_8080 : public U8X8 {
  1413. public: U8X8_SSD1306_64X48_ER_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1414. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_64x48_er, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  1415. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1416. }
  1417. };
  1418. class U8X8_SSD1306_64X48_ER_SW_I2C : public U8X8 {
  1419. public: U8X8_SSD1306_64X48_ER_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1420. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_64x48_er, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  1421. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  1422. }
  1423. };
  1424. #if defined U8G2_USE_HW_I2C
  1425. class U8X8_SSD1306_64X48_ER_HW_I2C : public U8X8 {
  1426. public: U8X8_SSD1306_64X48_ER_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  1427. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_64x48_er, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  1428. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  1429. }
  1430. };
  1431. #endif
  1432. class U8X8_SSD1306_48X64_WINSTAR_4W_SW_SPI : public U8X8 {
  1433. public: U8X8_SSD1306_48X64_WINSTAR_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1434. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_48x64_winstar, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1435. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  1436. }
  1437. };
  1438. #if defined U8G2_USE_HW_SPI
  1439. class U8X8_SSD1306_48X64_WINSTAR_4W_HW_SPI : public U8X8 {
  1440. public: U8X8_SSD1306_48X64_WINSTAR_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1441. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_48x64_winstar, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  1442. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  1443. }
  1444. };
  1445. #endif
  1446. class U8X8_SSD1306_48X64_WINSTAR_3W_SW_SPI : public U8X8 {
  1447. public: U8X8_SSD1306_48X64_WINSTAR_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1448. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_48x64_winstar, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1449. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  1450. }
  1451. };
  1452. class U8X8_SSD1306_48X64_WINSTAR_6800 : public U8X8 {
  1453. public: U8X8_SSD1306_48X64_WINSTAR_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1454. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_48x64_winstar, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  1455. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1456. }
  1457. };
  1458. class U8X8_SSD1306_48X64_WINSTAR_8080 : public U8X8 {
  1459. public: U8X8_SSD1306_48X64_WINSTAR_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1460. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_48x64_winstar, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  1461. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1462. }
  1463. };
  1464. class U8X8_SSD1306_48X64_WINSTAR_SW_I2C : public U8X8 {
  1465. public: U8X8_SSD1306_48X64_WINSTAR_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1466. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_48x64_winstar, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  1467. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  1468. }
  1469. };
  1470. #if defined U8G2_USE_HW_I2C
  1471. class U8X8_SSD1306_48X64_WINSTAR_HW_I2C : public U8X8 {
  1472. public: U8X8_SSD1306_48X64_WINSTAR_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  1473. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_48x64_winstar, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  1474. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  1475. }
  1476. };
  1477. #endif
  1478. class U8X8_SSD1306_64X32_NONAME_4W_SW_SPI : public U8X8 {
  1479. public: U8X8_SSD1306_64X32_NONAME_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1480. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_64x32_noname, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1481. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  1482. }
  1483. };
  1484. #if defined U8G2_USE_HW_SPI
  1485. class U8X8_SSD1306_64X32_NONAME_4W_HW_SPI : public U8X8 {
  1486. public: U8X8_SSD1306_64X32_NONAME_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1487. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_64x32_noname, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  1488. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  1489. }
  1490. };
  1491. #endif
  1492. class U8X8_SSD1306_64X32_NONAME_3W_SW_SPI : public U8X8 {
  1493. public: U8X8_SSD1306_64X32_NONAME_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1494. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_64x32_noname, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1495. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  1496. }
  1497. };
  1498. class U8X8_SSD1306_64X32_NONAME_6800 : public U8X8 {
  1499. public: U8X8_SSD1306_64X32_NONAME_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1500. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_64x32_noname, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  1501. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1502. }
  1503. };
  1504. class U8X8_SSD1306_64X32_NONAME_8080 : public U8X8 {
  1505. public: U8X8_SSD1306_64X32_NONAME_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1506. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_64x32_noname, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  1507. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1508. }
  1509. };
  1510. class U8X8_SSD1306_64X32_1F_4W_SW_SPI : public U8X8 {
  1511. public: U8X8_SSD1306_64X32_1F_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1512. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_64x32_1f, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1513. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  1514. }
  1515. };
  1516. #if defined U8G2_USE_HW_SPI
  1517. class U8X8_SSD1306_64X32_1F_4W_HW_SPI : public U8X8 {
  1518. public: U8X8_SSD1306_64X32_1F_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1519. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_64x32_1f, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  1520. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  1521. }
  1522. };
  1523. #endif
  1524. class U8X8_SSD1306_64X32_1F_3W_SW_SPI : public U8X8 {
  1525. public: U8X8_SSD1306_64X32_1F_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1526. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_64x32_1f, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1527. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  1528. }
  1529. };
  1530. class U8X8_SSD1306_64X32_1F_6800 : public U8X8 {
  1531. public: U8X8_SSD1306_64X32_1F_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1532. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_64x32_1f, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  1533. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1534. }
  1535. };
  1536. class U8X8_SSD1306_64X32_1F_8080 : public U8X8 {
  1537. public: U8X8_SSD1306_64X32_1F_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1538. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_64x32_1f, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  1539. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1540. }
  1541. };
  1542. class U8X8_SSD1306_64X32_NONAME_SW_I2C : public U8X8 {
  1543. public: U8X8_SSD1306_64X32_NONAME_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1544. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_64x32_noname, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  1545. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  1546. }
  1547. };
  1548. #if defined U8G2_USE_HW_I2C
  1549. class U8X8_SSD1306_64X32_NONAME_HW_I2C : public U8X8 {
  1550. public: U8X8_SSD1306_64X32_NONAME_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  1551. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_64x32_noname, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  1552. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  1553. }
  1554. };
  1555. #endif
  1556. class U8X8_SSD1306_64X32_1F_SW_I2C : public U8X8 {
  1557. public: U8X8_SSD1306_64X32_1F_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1558. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_64x32_1f, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  1559. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  1560. }
  1561. };
  1562. #if defined U8G2_USE_HW_I2C
  1563. class U8X8_SSD1306_64X32_1F_HW_I2C : public U8X8 {
  1564. public: U8X8_SSD1306_64X32_1F_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  1565. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_64x32_1f, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  1566. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  1567. }
  1568. };
  1569. #endif
  1570. class U8X8_SSD1306_96X16_ER_4W_SW_SPI : public U8X8 {
  1571. public: U8X8_SSD1306_96X16_ER_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1572. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_96x16_er, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1573. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  1574. }
  1575. };
  1576. #if defined U8G2_USE_HW_SPI
  1577. class U8X8_SSD1306_96X16_ER_4W_HW_SPI : public U8X8 {
  1578. public: U8X8_SSD1306_96X16_ER_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1579. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_96x16_er, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  1580. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  1581. }
  1582. };
  1583. #endif
  1584. class U8X8_SSD1306_96X16_ER_3W_SW_SPI : public U8X8 {
  1585. public: U8X8_SSD1306_96X16_ER_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1586. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_96x16_er, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1587. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  1588. }
  1589. };
  1590. class U8X8_SSD1306_96X16_ER_6800 : public U8X8 {
  1591. public: U8X8_SSD1306_96X16_ER_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1592. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_96x16_er, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  1593. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1594. }
  1595. };
  1596. class U8X8_SSD1306_96X16_ER_8080 : public U8X8 {
  1597. public: U8X8_SSD1306_96X16_ER_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1598. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_96x16_er, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  1599. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1600. }
  1601. };
  1602. class U8X8_SSD1306_96X16_ER_SW_I2C : public U8X8 {
  1603. public: U8X8_SSD1306_96X16_ER_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1604. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_96x16_er, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  1605. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  1606. }
  1607. };
  1608. #if defined U8G2_USE_HW_I2C
  1609. class U8X8_SSD1306_96X16_ER_HW_I2C : public U8X8 {
  1610. public: U8X8_SSD1306_96X16_ER_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  1611. u8x8_Setup(getU8x8(), u8x8_d_ssd1306_96x16_er, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  1612. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  1613. }
  1614. };
  1615. #endif
  1616. class U8X8_SSD1309_128X64_NONAME2_4W_SW_SPI : public U8X8 {
  1617. public: U8X8_SSD1309_128X64_NONAME2_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1618. u8x8_Setup(getU8x8(), u8x8_d_ssd1309_128x64_noname2, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1619. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  1620. }
  1621. };
  1622. #if defined U8G2_USE_HW_SPI
  1623. class U8X8_SSD1309_128X64_NONAME2_4W_HW_SPI : public U8X8 {
  1624. public: U8X8_SSD1309_128X64_NONAME2_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1625. u8x8_Setup(getU8x8(), u8x8_d_ssd1309_128x64_noname2, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  1626. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  1627. }
  1628. };
  1629. #endif
  1630. class U8X8_SSD1309_128X64_NONAME2_6800 : public U8X8 {
  1631. public: U8X8_SSD1309_128X64_NONAME2_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1632. u8x8_Setup(getU8x8(), u8x8_d_ssd1309_128x64_noname2, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  1633. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1634. }
  1635. };
  1636. class U8X8_SSD1309_128X64_NONAME2_8080 : public U8X8 {
  1637. public: U8X8_SSD1309_128X64_NONAME2_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1638. u8x8_Setup(getU8x8(), u8x8_d_ssd1309_128x64_noname2, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  1639. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1640. }
  1641. };
  1642. class U8X8_SSD1309_128X64_NONAME2_SW_I2C : public U8X8 {
  1643. public: U8X8_SSD1309_128X64_NONAME2_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1644. u8x8_Setup(getU8x8(), u8x8_d_ssd1309_128x64_noname2, u8x8_cad_ssd13xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  1645. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  1646. }
  1647. };
  1648. #if defined U8G2_USE_HW_I2C
  1649. class U8X8_SSD1309_128X64_NONAME2_HW_I2C : public U8X8 {
  1650. public: U8X8_SSD1309_128X64_NONAME2_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  1651. u8x8_Setup(getU8x8(), u8x8_d_ssd1309_128x64_noname2, u8x8_cad_ssd13xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  1652. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  1653. }
  1654. };
  1655. #endif
  1656. class U8X8_SSD1309_128X64_NONAME0_4W_SW_SPI : public U8X8 {
  1657. public: U8X8_SSD1309_128X64_NONAME0_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1658. u8x8_Setup(getU8x8(), u8x8_d_ssd1309_128x64_noname0, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1659. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  1660. }
  1661. };
  1662. #if defined U8G2_USE_HW_SPI
  1663. class U8X8_SSD1309_128X64_NONAME0_4W_HW_SPI : public U8X8 {
  1664. public: U8X8_SSD1309_128X64_NONAME0_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1665. u8x8_Setup(getU8x8(), u8x8_d_ssd1309_128x64_noname0, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  1666. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  1667. }
  1668. };
  1669. #endif
  1670. class U8X8_SSD1309_128X64_NONAME0_6800 : public U8X8 {
  1671. public: U8X8_SSD1309_128X64_NONAME0_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1672. u8x8_Setup(getU8x8(), u8x8_d_ssd1309_128x64_noname0, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  1673. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1674. }
  1675. };
  1676. class U8X8_SSD1309_128X64_NONAME0_8080 : public U8X8 {
  1677. public: U8X8_SSD1309_128X64_NONAME0_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1678. u8x8_Setup(getU8x8(), u8x8_d_ssd1309_128x64_noname0, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  1679. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1680. }
  1681. };
  1682. class U8X8_SSD1309_128X64_NONAME0_SW_I2C : public U8X8 {
  1683. public: U8X8_SSD1309_128X64_NONAME0_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1684. u8x8_Setup(getU8x8(), u8x8_d_ssd1309_128x64_noname0, u8x8_cad_ssd13xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  1685. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  1686. }
  1687. };
  1688. #if defined U8G2_USE_HW_I2C
  1689. class U8X8_SSD1309_128X64_NONAME0_HW_I2C : public U8X8 {
  1690. public: U8X8_SSD1309_128X64_NONAME0_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  1691. u8x8_Setup(getU8x8(), u8x8_d_ssd1309_128x64_noname0, u8x8_cad_ssd13xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  1692. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  1693. }
  1694. };
  1695. #endif
  1696. class U8X8_SSD1316_128X32_4W_SW_SPI : public U8X8 {
  1697. public: U8X8_SSD1316_128X32_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1698. u8x8_Setup(getU8x8(), u8x8_d_ssd1316_128x32, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1699. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  1700. }
  1701. };
  1702. #if defined U8G2_USE_HW_SPI
  1703. class U8X8_SSD1316_128X32_4W_HW_SPI : public U8X8 {
  1704. public: U8X8_SSD1316_128X32_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1705. u8x8_Setup(getU8x8(), u8x8_d_ssd1316_128x32, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  1706. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  1707. }
  1708. };
  1709. #endif
  1710. class U8X8_SSD1316_128X32_6800 : public U8X8 {
  1711. public: U8X8_SSD1316_128X32_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1712. u8x8_Setup(getU8x8(), u8x8_d_ssd1316_128x32, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  1713. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1714. }
  1715. };
  1716. class U8X8_SSD1316_128X32_8080 : public U8X8 {
  1717. public: U8X8_SSD1316_128X32_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1718. u8x8_Setup(getU8x8(), u8x8_d_ssd1316_128x32, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  1719. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1720. }
  1721. };
  1722. class U8X8_SSD1316_128X32_SW_I2C : public U8X8 {
  1723. public: U8X8_SSD1316_128X32_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1724. u8x8_Setup(getU8x8(), u8x8_d_ssd1316_128x32, u8x8_cad_ssd13xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  1725. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  1726. }
  1727. };
  1728. #if defined U8G2_USE_HW_I2C
  1729. class U8X8_SSD1316_128X32_HW_I2C : public U8X8 {
  1730. public: U8X8_SSD1316_128X32_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  1731. u8x8_Setup(getU8x8(), u8x8_d_ssd1316_128x32, u8x8_cad_ssd13xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  1732. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  1733. }
  1734. };
  1735. #endif
  1736. class U8X8_SSD1317_96X96_4W_SW_SPI : public U8X8 {
  1737. public: U8X8_SSD1317_96X96_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1738. u8x8_Setup(getU8x8(), u8x8_d_ssd1317_96x96, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1739. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  1740. }
  1741. };
  1742. #if defined U8G2_USE_HW_SPI
  1743. class U8X8_SSD1317_96X96_4W_HW_SPI : public U8X8 {
  1744. public: U8X8_SSD1317_96X96_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1745. u8x8_Setup(getU8x8(), u8x8_d_ssd1317_96x96, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  1746. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  1747. }
  1748. };
  1749. #endif
  1750. class U8X8_SSD1317_96X96_6800 : public U8X8 {
  1751. public: U8X8_SSD1317_96X96_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1752. u8x8_Setup(getU8x8(), u8x8_d_ssd1317_96x96, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  1753. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1754. }
  1755. };
  1756. class U8X8_SSD1317_96X96_8080 : public U8X8 {
  1757. public: U8X8_SSD1317_96X96_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1758. u8x8_Setup(getU8x8(), u8x8_d_ssd1317_96x96, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  1759. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1760. }
  1761. };
  1762. class U8X8_SSD1317_96X96_SW_I2C : public U8X8 {
  1763. public: U8X8_SSD1317_96X96_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1764. u8x8_Setup(getU8x8(), u8x8_d_ssd1317_96x96, u8x8_cad_ssd13xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  1765. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  1766. }
  1767. };
  1768. #if defined U8G2_USE_HW_I2C
  1769. class U8X8_SSD1317_96X96_HW_I2C : public U8X8 {
  1770. public: U8X8_SSD1317_96X96_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  1771. u8x8_Setup(getU8x8(), u8x8_d_ssd1317_96x96, u8x8_cad_ssd13xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  1772. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  1773. }
  1774. };
  1775. #endif
  1776. class U8X8_SSD1318_128X96_4W_SW_SPI : public U8X8 {
  1777. public: U8X8_SSD1318_128X96_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1778. u8x8_Setup(getU8x8(), u8x8_d_ssd1318_128x96, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1779. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  1780. }
  1781. };
  1782. #if defined U8G2_USE_HW_SPI
  1783. class U8X8_SSD1318_128X96_4W_HW_SPI : public U8X8 {
  1784. public: U8X8_SSD1318_128X96_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1785. u8x8_Setup(getU8x8(), u8x8_d_ssd1318_128x96, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  1786. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  1787. }
  1788. };
  1789. #endif
  1790. class U8X8_SSD1318_128X96_3W_SW_SPI : public U8X8 {
  1791. public: U8X8_SSD1318_128X96_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1792. u8x8_Setup(getU8x8(), u8x8_d_ssd1318_128x96, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1793. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  1794. }
  1795. };
  1796. class U8X8_SSD1318_128X96_6800 : public U8X8 {
  1797. public: U8X8_SSD1318_128X96_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1798. u8x8_Setup(getU8x8(), u8x8_d_ssd1318_128x96, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  1799. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1800. }
  1801. };
  1802. class U8X8_SSD1318_128X96_8080 : public U8X8 {
  1803. public: U8X8_SSD1318_128X96_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1804. u8x8_Setup(getU8x8(), u8x8_d_ssd1318_128x96, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  1805. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1806. }
  1807. };
  1808. class U8X8_SSD1318_128X96_XCP_4W_SW_SPI : public U8X8 {
  1809. public: U8X8_SSD1318_128X96_XCP_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1810. u8x8_Setup(getU8x8(), u8x8_d_ssd1318_128x96_xcp, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1811. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  1812. }
  1813. };
  1814. #if defined U8G2_USE_HW_SPI
  1815. class U8X8_SSD1318_128X96_XCP_4W_HW_SPI : public U8X8 {
  1816. public: U8X8_SSD1318_128X96_XCP_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1817. u8x8_Setup(getU8x8(), u8x8_d_ssd1318_128x96_xcp, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  1818. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  1819. }
  1820. };
  1821. #endif
  1822. class U8X8_SSD1318_128X96_XCP_3W_SW_SPI : public U8X8 {
  1823. public: U8X8_SSD1318_128X96_XCP_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1824. u8x8_Setup(getU8x8(), u8x8_d_ssd1318_128x96_xcp, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1825. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  1826. }
  1827. };
  1828. class U8X8_SSD1318_128X96_XCP_6800 : public U8X8 {
  1829. public: U8X8_SSD1318_128X96_XCP_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1830. u8x8_Setup(getU8x8(), u8x8_d_ssd1318_128x96_xcp, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  1831. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1832. }
  1833. };
  1834. class U8X8_SSD1318_128X96_XCP_8080 : public U8X8 {
  1835. public: U8X8_SSD1318_128X96_XCP_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1836. u8x8_Setup(getU8x8(), u8x8_d_ssd1318_128x96_xcp, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  1837. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1838. }
  1839. };
  1840. class U8X8_SSD1318_128X96_SW_I2C : public U8X8 {
  1841. public: U8X8_SSD1318_128X96_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1842. u8x8_Setup(getU8x8(), u8x8_d_ssd1318_128x96, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  1843. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  1844. }
  1845. };
  1846. #if defined U8G2_USE_HW_I2C
  1847. class U8X8_SSD1318_128X96_HW_I2C : public U8X8 {
  1848. public: U8X8_SSD1318_128X96_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  1849. u8x8_Setup(getU8x8(), u8x8_d_ssd1318_128x96, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  1850. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  1851. }
  1852. };
  1853. #endif
  1854. class U8X8_SSD1318_128X96_XCP_SW_I2C : public U8X8 {
  1855. public: U8X8_SSD1318_128X96_XCP_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1856. u8x8_Setup(getU8x8(), u8x8_d_ssd1318_128x96_xcp, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  1857. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  1858. }
  1859. };
  1860. #if defined U8G2_USE_HW_I2C
  1861. class U8X8_SSD1318_128X96_XCP_HW_I2C : public U8X8 {
  1862. public: U8X8_SSD1318_128X96_XCP_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  1863. u8x8_Setup(getU8x8(), u8x8_d_ssd1318_128x96_xcp, u8x8_cad_ssd13xx_fast_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  1864. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  1865. }
  1866. };
  1867. #endif
  1868. class U8X8_SSD1325_NHD_128X64_4W_SW_SPI : public U8X8 {
  1869. public: U8X8_SSD1325_NHD_128X64_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1870. u8x8_Setup(getU8x8(), u8x8_d_ssd1325_nhd_128x64, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1871. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  1872. }
  1873. };
  1874. #if defined U8G2_USE_HW_SPI
  1875. class U8X8_SSD1325_NHD_128X64_4W_HW_SPI : public U8X8 {
  1876. public: U8X8_SSD1325_NHD_128X64_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1877. u8x8_Setup(getU8x8(), u8x8_d_ssd1325_nhd_128x64, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  1878. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  1879. }
  1880. };
  1881. #endif
  1882. class U8X8_SSD1325_NHD_128X64_3W_SW_SPI : public U8X8 {
  1883. public: U8X8_SSD1325_NHD_128X64_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1884. u8x8_Setup(getU8x8(), u8x8_d_ssd1325_nhd_128x64, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1885. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  1886. }
  1887. };
  1888. class U8X8_SSD1325_NHD_128X64_6800 : public U8X8 {
  1889. public: U8X8_SSD1325_NHD_128X64_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1890. u8x8_Setup(getU8x8(), u8x8_d_ssd1325_nhd_128x64, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  1891. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1892. }
  1893. };
  1894. class U8X8_SSD1325_NHD_128X64_8080 : public U8X8 {
  1895. public: U8X8_SSD1325_NHD_128X64_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1896. u8x8_Setup(getU8x8(), u8x8_d_ssd1325_nhd_128x64, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  1897. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1898. }
  1899. };
  1900. class U8X8_SSD1325_NHD_128X64_SW_I2C : public U8X8 {
  1901. public: U8X8_SSD1325_NHD_128X64_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1902. u8x8_Setup(getU8x8(), u8x8_d_ssd1325_nhd_128x64, u8x8_cad_ssd13xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  1903. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  1904. }
  1905. };
  1906. #if defined U8G2_USE_HW_I2C
  1907. class U8X8_SSD1325_NHD_128X64_HW_I2C : public U8X8 {
  1908. public: U8X8_SSD1325_NHD_128X64_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  1909. u8x8_Setup(getU8x8(), u8x8_d_ssd1325_nhd_128x64, u8x8_cad_ssd13xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  1910. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  1911. }
  1912. };
  1913. #endif
  1914. class U8X8_SSD0323_OS128064_4W_SW_SPI : public U8X8 {
  1915. public: U8X8_SSD0323_OS128064_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1916. u8x8_Setup(getU8x8(), u8x8_d_ssd0323_os128064, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1917. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  1918. }
  1919. };
  1920. #if defined U8G2_USE_HW_SPI
  1921. class U8X8_SSD0323_OS128064_4W_HW_SPI : public U8X8 {
  1922. public: U8X8_SSD0323_OS128064_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1923. u8x8_Setup(getU8x8(), u8x8_d_ssd0323_os128064, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  1924. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  1925. }
  1926. };
  1927. #endif
  1928. class U8X8_SSD0323_OS128064_3W_SW_SPI : public U8X8 {
  1929. public: U8X8_SSD0323_OS128064_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1930. u8x8_Setup(getU8x8(), u8x8_d_ssd0323_os128064, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1931. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  1932. }
  1933. };
  1934. class U8X8_SSD0323_OS128064_6800 : public U8X8 {
  1935. public: U8X8_SSD0323_OS128064_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1936. u8x8_Setup(getU8x8(), u8x8_d_ssd0323_os128064, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  1937. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1938. }
  1939. };
  1940. class U8X8_SSD0323_OS128064_8080 : public U8X8 {
  1941. public: U8X8_SSD0323_OS128064_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1942. u8x8_Setup(getU8x8(), u8x8_d_ssd0323_os128064, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  1943. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1944. }
  1945. };
  1946. class U8X8_SSD0323_OS128064_SW_I2C : public U8X8 {
  1947. public: U8X8_SSD0323_OS128064_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1948. u8x8_Setup(getU8x8(), u8x8_d_ssd0323_os128064, u8x8_cad_ssd13xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  1949. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  1950. }
  1951. };
  1952. #if defined U8G2_USE_HW_I2C
  1953. class U8X8_SSD0323_OS128064_HW_I2C : public U8X8 {
  1954. public: U8X8_SSD0323_OS128064_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  1955. u8x8_Setup(getU8x8(), u8x8_d_ssd0323_os128064, u8x8_cad_ssd13xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  1956. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  1957. }
  1958. };
  1959. #endif
  1960. class U8X8_SSD1326_ER_256X32_4W_SW_SPI : public U8X8 {
  1961. public: U8X8_SSD1326_ER_256X32_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1962. u8x8_Setup(getU8x8(), u8x8_d_ssd1326_er_256x32, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1963. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  1964. }
  1965. };
  1966. #if defined U8G2_USE_HW_SPI
  1967. class U8X8_SSD1326_ER_256X32_4W_HW_SPI : public U8X8 {
  1968. public: U8X8_SSD1326_ER_256X32_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1969. u8x8_Setup(getU8x8(), u8x8_d_ssd1326_er_256x32, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  1970. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  1971. }
  1972. };
  1973. #endif
  1974. class U8X8_SSD1326_ER_256X32_3W_SW_SPI : public U8X8 {
  1975. public: U8X8_SSD1326_ER_256X32_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1976. u8x8_Setup(getU8x8(), u8x8_d_ssd1326_er_256x32, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  1977. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  1978. }
  1979. };
  1980. class U8X8_SSD1326_ER_256X32_6800 : public U8X8 {
  1981. public: U8X8_SSD1326_ER_256X32_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1982. u8x8_Setup(getU8x8(), u8x8_d_ssd1326_er_256x32, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  1983. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1984. }
  1985. };
  1986. class U8X8_SSD1326_ER_256X32_8080 : public U8X8 {
  1987. public: U8X8_SSD1326_ER_256X32_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1988. u8x8_Setup(getU8x8(), u8x8_d_ssd1326_er_256x32, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  1989. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  1990. }
  1991. };
  1992. class U8X8_SSD1326_ER_256X32_SW_I2C : public U8X8 {
  1993. public: U8X8_SSD1326_ER_256X32_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  1994. u8x8_Setup(getU8x8(), u8x8_d_ssd1326_er_256x32, u8x8_cad_ssd13xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  1995. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  1996. }
  1997. };
  1998. #if defined U8G2_USE_HW_I2C
  1999. class U8X8_SSD1326_ER_256X32_HW_I2C : public U8X8 {
  2000. public: U8X8_SSD1326_ER_256X32_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  2001. u8x8_Setup(getU8x8(), u8x8_d_ssd1326_er_256x32, u8x8_cad_ssd13xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  2002. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  2003. }
  2004. };
  2005. #endif
  2006. class U8X8_SSD1327_WS_96X64_4W_SW_SPI : public U8X8 {
  2007. public: U8X8_SSD1327_WS_96X64_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2008. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_ws_96x64, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2009. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  2010. }
  2011. };
  2012. #if defined U8G2_USE_HW_SPI
  2013. class U8X8_SSD1327_WS_96X64_4W_HW_SPI : public U8X8 {
  2014. public: U8X8_SSD1327_WS_96X64_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2015. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_ws_96x64, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  2016. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  2017. }
  2018. };
  2019. #endif
  2020. class U8X8_SSD1327_WS_96X64_3W_SW_SPI : public U8X8 {
  2021. public: U8X8_SSD1327_WS_96X64_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2022. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_ws_96x64, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2023. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  2024. }
  2025. };
  2026. class U8X8_SSD1327_WS_96X64_6800 : public U8X8 {
  2027. public: U8X8_SSD1327_WS_96X64_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2028. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_ws_96x64, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  2029. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2030. }
  2031. };
  2032. class U8X8_SSD1327_WS_96X64_8080 : public U8X8 {
  2033. public: U8X8_SSD1327_WS_96X64_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2034. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_ws_96x64, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  2035. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2036. }
  2037. };
  2038. class U8X8_SSD1327_WS_96X64_SW_I2C : public U8X8 {
  2039. public: U8X8_SSD1327_WS_96X64_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2040. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_ws_96x64, u8x8_cad_ssd13xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  2041. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  2042. }
  2043. };
  2044. #if defined U8G2_USE_HW_I2C
  2045. class U8X8_SSD1327_WS_96X64_HW_I2C : public U8X8 {
  2046. public: U8X8_SSD1327_WS_96X64_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  2047. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_ws_96x64, u8x8_cad_ssd13xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  2048. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  2049. }
  2050. };
  2051. #endif
  2052. class U8X8_SSD1327_SEEED_96X96_4W_SW_SPI : public U8X8 {
  2053. public: U8X8_SSD1327_SEEED_96X96_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2054. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_seeed_96x96, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2055. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  2056. }
  2057. };
  2058. #if defined U8G2_USE_HW_SPI
  2059. class U8X8_SSD1327_SEEED_96X96_4W_HW_SPI : public U8X8 {
  2060. public: U8X8_SSD1327_SEEED_96X96_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2061. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_seeed_96x96, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  2062. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  2063. }
  2064. };
  2065. #endif
  2066. class U8X8_SSD1327_SEEED_96X96_3W_SW_SPI : public U8X8 {
  2067. public: U8X8_SSD1327_SEEED_96X96_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2068. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_seeed_96x96, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2069. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  2070. }
  2071. };
  2072. class U8X8_SSD1327_SEEED_96X96_6800 : public U8X8 {
  2073. public: U8X8_SSD1327_SEEED_96X96_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2074. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_seeed_96x96, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  2075. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2076. }
  2077. };
  2078. class U8X8_SSD1327_SEEED_96X96_8080 : public U8X8 {
  2079. public: U8X8_SSD1327_SEEED_96X96_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2080. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_seeed_96x96, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  2081. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2082. }
  2083. };
  2084. class U8X8_SSD1327_SEEED_96X96_SW_I2C : public U8X8 {
  2085. public: U8X8_SSD1327_SEEED_96X96_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2086. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_seeed_96x96, u8x8_cad_ssd13xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  2087. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  2088. }
  2089. };
  2090. #if defined U8G2_USE_HW_I2C
  2091. class U8X8_SSD1327_SEEED_96X96_HW_I2C : public U8X8 {
  2092. public: U8X8_SSD1327_SEEED_96X96_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  2093. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_seeed_96x96, u8x8_cad_ssd13xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  2094. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  2095. }
  2096. };
  2097. #endif
  2098. class U8X8_SSD1327_EA_W128128_4W_SW_SPI : public U8X8 {
  2099. public: U8X8_SSD1327_EA_W128128_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2100. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_ea_w128128, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2101. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  2102. }
  2103. };
  2104. #if defined U8G2_USE_HW_SPI
  2105. class U8X8_SSD1327_EA_W128128_4W_HW_SPI : public U8X8 {
  2106. public: U8X8_SSD1327_EA_W128128_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2107. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_ea_w128128, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  2108. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  2109. }
  2110. };
  2111. #endif
  2112. class U8X8_SSD1327_EA_W128128_3W_SW_SPI : public U8X8 {
  2113. public: U8X8_SSD1327_EA_W128128_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2114. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_ea_w128128, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2115. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  2116. }
  2117. };
  2118. class U8X8_SSD1327_EA_W128128_6800 : public U8X8 {
  2119. public: U8X8_SSD1327_EA_W128128_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2120. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_ea_w128128, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  2121. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2122. }
  2123. };
  2124. class U8X8_SSD1327_EA_W128128_8080 : public U8X8 {
  2125. public: U8X8_SSD1327_EA_W128128_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2126. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_ea_w128128, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  2127. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2128. }
  2129. };
  2130. class U8X8_SSD1327_MIDAS_128X128_4W_SW_SPI : public U8X8 {
  2131. public: U8X8_SSD1327_MIDAS_128X128_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2132. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_midas_128x128, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2133. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  2134. }
  2135. };
  2136. #if defined U8G2_USE_HW_SPI
  2137. class U8X8_SSD1327_MIDAS_128X128_4W_HW_SPI : public U8X8 {
  2138. public: U8X8_SSD1327_MIDAS_128X128_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2139. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_midas_128x128, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  2140. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  2141. }
  2142. };
  2143. #endif
  2144. class U8X8_SSD1327_MIDAS_128X128_3W_SW_SPI : public U8X8 {
  2145. public: U8X8_SSD1327_MIDAS_128X128_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2146. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_midas_128x128, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2147. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  2148. }
  2149. };
  2150. class U8X8_SSD1327_MIDAS_128X128_6800 : public U8X8 {
  2151. public: U8X8_SSD1327_MIDAS_128X128_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2152. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_midas_128x128, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  2153. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2154. }
  2155. };
  2156. class U8X8_SSD1327_MIDAS_128X128_8080 : public U8X8 {
  2157. public: U8X8_SSD1327_MIDAS_128X128_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2158. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_midas_128x128, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  2159. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2160. }
  2161. };
  2162. class U8X8_SSD1327_WS_128X128_4W_SW_SPI : public U8X8 {
  2163. public: U8X8_SSD1327_WS_128X128_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2164. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_ws_128x128, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2165. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  2166. }
  2167. };
  2168. #if defined U8G2_USE_HW_SPI
  2169. class U8X8_SSD1327_WS_128X128_4W_HW_SPI : public U8X8 {
  2170. public: U8X8_SSD1327_WS_128X128_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2171. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_ws_128x128, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  2172. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  2173. }
  2174. };
  2175. #endif
  2176. class U8X8_SSD1327_WS_128X128_3W_SW_SPI : public U8X8 {
  2177. public: U8X8_SSD1327_WS_128X128_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2178. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_ws_128x128, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2179. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  2180. }
  2181. };
  2182. class U8X8_SSD1327_WS_128X128_6800 : public U8X8 {
  2183. public: U8X8_SSD1327_WS_128X128_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2184. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_ws_128x128, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  2185. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2186. }
  2187. };
  2188. class U8X8_SSD1327_WS_128X128_8080 : public U8X8 {
  2189. public: U8X8_SSD1327_WS_128X128_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2190. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_ws_128x128, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  2191. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2192. }
  2193. };
  2194. class U8X8_SSD1327_EA_W128128_SW_I2C : public U8X8 {
  2195. public: U8X8_SSD1327_EA_W128128_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2196. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_ea_w128128, u8x8_cad_ssd13xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  2197. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  2198. }
  2199. };
  2200. #if defined U8G2_USE_HW_I2C
  2201. class U8X8_SSD1327_EA_W128128_HW_I2C : public U8X8 {
  2202. public: U8X8_SSD1327_EA_W128128_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  2203. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_ea_w128128, u8x8_cad_ssd13xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  2204. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  2205. }
  2206. };
  2207. #endif
  2208. class U8X8_SSD1327_MIDAS_128X128_SW_I2C : public U8X8 {
  2209. public: U8X8_SSD1327_MIDAS_128X128_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2210. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_midas_128x128, u8x8_cad_ssd13xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  2211. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  2212. }
  2213. };
  2214. #if defined U8G2_USE_HW_I2C
  2215. class U8X8_SSD1327_MIDAS_128X128_HW_I2C : public U8X8 {
  2216. public: U8X8_SSD1327_MIDAS_128X128_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  2217. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_midas_128x128, u8x8_cad_ssd13xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  2218. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  2219. }
  2220. };
  2221. #endif
  2222. class U8X8_SSD1327_WS_128X128_SW_I2C : public U8X8 {
  2223. public: U8X8_SSD1327_WS_128X128_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2224. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_ws_128x128, u8x8_cad_ssd13xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  2225. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  2226. }
  2227. };
  2228. #if defined U8G2_USE_HW_I2C
  2229. class U8X8_SSD1327_WS_128X128_HW_I2C : public U8X8 {
  2230. public: U8X8_SSD1327_WS_128X128_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  2231. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_ws_128x128, u8x8_cad_ssd13xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  2232. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  2233. }
  2234. };
  2235. #endif
  2236. class U8X8_SSD1327_VISIONOX_128X96_4W_SW_SPI : public U8X8 {
  2237. public: U8X8_SSD1327_VISIONOX_128X96_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2238. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_visionox_128x96, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2239. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  2240. }
  2241. };
  2242. #if defined U8G2_USE_HW_SPI
  2243. class U8X8_SSD1327_VISIONOX_128X96_4W_HW_SPI : public U8X8 {
  2244. public: U8X8_SSD1327_VISIONOX_128X96_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2245. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_visionox_128x96, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  2246. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  2247. }
  2248. };
  2249. #endif
  2250. class U8X8_SSD1327_VISIONOX_128X96_3W_SW_SPI : public U8X8 {
  2251. public: U8X8_SSD1327_VISIONOX_128X96_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2252. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_visionox_128x96, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2253. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  2254. }
  2255. };
  2256. class U8X8_SSD1327_VISIONOX_128X96_6800 : public U8X8 {
  2257. public: U8X8_SSD1327_VISIONOX_128X96_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2258. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_visionox_128x96, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  2259. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2260. }
  2261. };
  2262. class U8X8_SSD1327_VISIONOX_128X96_8080 : public U8X8 {
  2263. public: U8X8_SSD1327_VISIONOX_128X96_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2264. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_visionox_128x96, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  2265. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2266. }
  2267. };
  2268. class U8X8_SSD1327_VISIONOX_128X96_SW_I2C : public U8X8 {
  2269. public: U8X8_SSD1327_VISIONOX_128X96_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2270. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_visionox_128x96, u8x8_cad_ssd13xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  2271. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  2272. }
  2273. };
  2274. #if defined U8G2_USE_HW_I2C
  2275. class U8X8_SSD1327_VISIONOX_128X96_HW_I2C : public U8X8 {
  2276. public: U8X8_SSD1327_VISIONOX_128X96_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  2277. u8x8_Setup(getU8x8(), u8x8_d_ssd1327_visionox_128x96, u8x8_cad_ssd13xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  2278. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  2279. }
  2280. };
  2281. #endif
  2282. class U8X8_SSD1329_128X96_NONAME_4W_SW_SPI : public U8X8 {
  2283. public: U8X8_SSD1329_128X96_NONAME_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2284. u8x8_Setup(getU8x8(), u8x8_d_ssd1329_128x96_noname, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2285. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  2286. }
  2287. };
  2288. #if defined U8G2_USE_HW_SPI
  2289. class U8X8_SSD1329_128X96_NONAME_4W_HW_SPI : public U8X8 {
  2290. public: U8X8_SSD1329_128X96_NONAME_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2291. u8x8_Setup(getU8x8(), u8x8_d_ssd1329_128x96_noname, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  2292. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  2293. }
  2294. };
  2295. #endif
  2296. class U8X8_SSD1329_128X96_NONAME_6800 : public U8X8 {
  2297. public: U8X8_SSD1329_128X96_NONAME_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2298. u8x8_Setup(getU8x8(), u8x8_d_ssd1329_128x96_noname, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  2299. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2300. }
  2301. };
  2302. class U8X8_SSD1329_128X96_NONAME_8080 : public U8X8 {
  2303. public: U8X8_SSD1329_128X96_NONAME_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2304. u8x8_Setup(getU8x8(), u8x8_d_ssd1329_128x96_noname, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  2305. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2306. }
  2307. };
  2308. class U8X8_SSD1329_96X96_NONAME_4W_SW_SPI : public U8X8 {
  2309. public: U8X8_SSD1329_96X96_NONAME_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2310. u8x8_Setup(getU8x8(), u8x8_d_ssd1329_96x96_noname, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2311. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  2312. }
  2313. };
  2314. #if defined U8G2_USE_HW_SPI
  2315. class U8X8_SSD1329_96X96_NONAME_4W_HW_SPI : public U8X8 {
  2316. public: U8X8_SSD1329_96X96_NONAME_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2317. u8x8_Setup(getU8x8(), u8x8_d_ssd1329_96x96_noname, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  2318. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  2319. }
  2320. };
  2321. #endif
  2322. class U8X8_SSD1329_96X96_NONAME_6800 : public U8X8 {
  2323. public: U8X8_SSD1329_96X96_NONAME_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2324. u8x8_Setup(getU8x8(), u8x8_d_ssd1329_96x96_noname, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  2325. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2326. }
  2327. };
  2328. class U8X8_SSD1329_96X96_NONAME_8080 : public U8X8 {
  2329. public: U8X8_SSD1329_96X96_NONAME_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2330. u8x8_Setup(getU8x8(), u8x8_d_ssd1329_96x96_noname, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  2331. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2332. }
  2333. };
  2334. class U8X8_LD7032_60X32_4W_SW_SPI : public U8X8 {
  2335. public: U8X8_LD7032_60X32_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2336. u8x8_Setup(getU8x8(), u8x8_d_ld7032_60x32, u8x8_cad_011, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2337. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  2338. }
  2339. };
  2340. #if defined U8G2_USE_HW_SPI
  2341. class U8X8_LD7032_60X32_4W_HW_SPI : public U8X8 {
  2342. public: U8X8_LD7032_60X32_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2343. u8x8_Setup(getU8x8(), u8x8_d_ld7032_60x32, u8x8_cad_011, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  2344. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  2345. }
  2346. };
  2347. #endif
  2348. class U8X8_LD7032_60X32_ALT_4W_SW_SPI : public U8X8 {
  2349. public: U8X8_LD7032_60X32_ALT_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2350. u8x8_Setup(getU8x8(), u8x8_d_ld7032_60x32_alt, u8x8_cad_011, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2351. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  2352. }
  2353. };
  2354. #if defined U8G2_USE_HW_SPI
  2355. class U8X8_LD7032_60X32_ALT_4W_HW_SPI : public U8X8 {
  2356. public: U8X8_LD7032_60X32_ALT_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2357. u8x8_Setup(getU8x8(), u8x8_d_ld7032_60x32_alt, u8x8_cad_011, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  2358. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  2359. }
  2360. };
  2361. #endif
  2362. class U8X8_LD7032_60X32_SW_I2C : public U8X8 {
  2363. public: U8X8_LD7032_60X32_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2364. u8x8_Setup(getU8x8(), u8x8_d_ld7032_60x32, u8x8_cad_ld7032_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  2365. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  2366. }
  2367. };
  2368. #if defined U8G2_USE_HW_I2C
  2369. class U8X8_LD7032_60X32_HW_I2C : public U8X8 {
  2370. public: U8X8_LD7032_60X32_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  2371. u8x8_Setup(getU8x8(), u8x8_d_ld7032_60x32, u8x8_cad_ld7032_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  2372. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  2373. }
  2374. };
  2375. #endif
  2376. class U8X8_LD7032_60X32_ALT_SW_I2C : public U8X8 {
  2377. public: U8X8_LD7032_60X32_ALT_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2378. u8x8_Setup(getU8x8(), u8x8_d_ld7032_60x32_alt, u8x8_cad_ld7032_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  2379. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  2380. }
  2381. };
  2382. #if defined U8G2_USE_HW_I2C
  2383. class U8X8_LD7032_60X32_ALT_HW_I2C : public U8X8 {
  2384. public: U8X8_LD7032_60X32_ALT_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  2385. u8x8_Setup(getU8x8(), u8x8_d_ld7032_60x32_alt, u8x8_cad_ld7032_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  2386. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  2387. }
  2388. };
  2389. #endif
  2390. class U8X8_ST7920_256X32_8080 : public U8X8 {
  2391. public: U8X8_ST7920_256X32_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2392. u8x8_Setup(getU8x8(), u8x8_d_st7920_256x32, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  2393. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2394. }
  2395. };
  2396. class U8X8_ST7920_256X32_6800 : public U8X8 {
  2397. public: U8X8_ST7920_256X32_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2398. u8x8_Setup(getU8x8(), u8x8_d_st7920_256x32, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  2399. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2400. }
  2401. };
  2402. class U8X8_ST7920_256X32_SW_SPI : public U8X8 {
  2403. public: U8X8_ST7920_256X32_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2404. u8x8_Setup(getU8x8(), u8x8_d_st7920_256x32, u8x8_cad_st7920_spi, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2405. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  2406. }
  2407. };
  2408. class U8X8_ST7920_256X32_HW_SPI : public U8X8 {
  2409. public: U8X8_ST7920_256X32_HW_SPI(uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2410. u8x8_Setup(getU8x8(), u8x8_d_st7920_256x32, u8x8_cad_st7920_spi, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  2411. u8x8_SetPin_ST7920_HW_SPI(getU8x8(), cs, reset);
  2412. }
  2413. };
  2414. class U8X8_ST7920_192X32_8080 : public U8X8 {
  2415. public: U8X8_ST7920_192X32_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2416. u8x8_Setup(getU8x8(), u8x8_d_st7920_192x32, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  2417. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2418. }
  2419. };
  2420. class U8X8_ST7920_192X32_6800 : public U8X8 {
  2421. public: U8X8_ST7920_192X32_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2422. u8x8_Setup(getU8x8(), u8x8_d_st7920_192x32, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  2423. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2424. }
  2425. };
  2426. class U8X8_ST7920_192X32_SW_SPI : public U8X8 {
  2427. public: U8X8_ST7920_192X32_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2428. u8x8_Setup(getU8x8(), u8x8_d_st7920_192x32, u8x8_cad_st7920_spi, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2429. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  2430. }
  2431. };
  2432. class U8X8_ST7920_192X32_HW_SPI : public U8X8 {
  2433. public: U8X8_ST7920_192X32_HW_SPI(uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2434. u8x8_Setup(getU8x8(), u8x8_d_st7920_192x32, u8x8_cad_st7920_spi, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  2435. u8x8_SetPin_ST7920_HW_SPI(getU8x8(), cs, reset);
  2436. }
  2437. };
  2438. class U8X8_ST7920_128X64_8080 : public U8X8 {
  2439. public: U8X8_ST7920_128X64_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2440. u8x8_Setup(getU8x8(), u8x8_d_st7920_128x64, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  2441. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2442. }
  2443. };
  2444. class U8X8_ST7920_128X64_6800 : public U8X8 {
  2445. public: U8X8_ST7920_128X64_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2446. u8x8_Setup(getU8x8(), u8x8_d_st7920_128x64, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  2447. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2448. }
  2449. };
  2450. class U8X8_ST7920_128X64_SW_SPI : public U8X8 {
  2451. public: U8X8_ST7920_128X64_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2452. u8x8_Setup(getU8x8(), u8x8_d_st7920_128x64, u8x8_cad_st7920_spi, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2453. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  2454. }
  2455. };
  2456. class U8X8_ST7920_128X64_HW_SPI : public U8X8 {
  2457. public: U8X8_ST7920_128X64_HW_SPI(uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2458. u8x8_Setup(getU8x8(), u8x8_d_st7920_128x64, u8x8_cad_st7920_spi, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  2459. u8x8_SetPin_ST7920_HW_SPI(getU8x8(), cs, reset);
  2460. }
  2461. };
  2462. class U8X8_LS013B7DH03_128X128_4W_SW_SPI : public U8X8 {
  2463. public: U8X8_LS013B7DH03_128X128_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2464. u8x8_Setup(getU8x8(), u8x8_d_ls013b7dh03_128x128, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2465. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  2466. }
  2467. };
  2468. #if defined U8G2_USE_HW_SPI
  2469. class U8X8_LS013B7DH03_128X128_4W_HW_SPI : public U8X8 {
  2470. public: U8X8_LS013B7DH03_128X128_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2471. u8x8_Setup(getU8x8(), u8x8_d_ls013b7dh03_128x128, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  2472. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  2473. }
  2474. };
  2475. #endif
  2476. class U8X8_LS027B7DH01_400X240_4W_SW_SPI : public U8X8 {
  2477. public: U8X8_LS027B7DH01_400X240_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2478. u8x8_Setup(getU8x8(), u8x8_d_ls027b7dh01_400x240, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2479. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  2480. }
  2481. };
  2482. #if defined U8G2_USE_HW_SPI
  2483. class U8X8_LS027B7DH01_400X240_4W_HW_SPI : public U8X8 {
  2484. public: U8X8_LS027B7DH01_400X240_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2485. u8x8_Setup(getU8x8(), u8x8_d_ls027b7dh01_400x240, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  2486. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  2487. }
  2488. };
  2489. #endif
  2490. class U8X8_LS027B7DH01_M0_400X240_4W_SW_SPI : public U8X8 {
  2491. public: U8X8_LS027B7DH01_M0_400X240_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2492. u8x8_Setup(getU8x8(), u8x8_d_ls027b7dh01_m0_400x240, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2493. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  2494. }
  2495. };
  2496. #if defined U8G2_USE_HW_SPI
  2497. class U8X8_LS027B7DH01_M0_400X240_4W_HW_SPI : public U8X8 {
  2498. public: U8X8_LS027B7DH01_M0_400X240_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2499. u8x8_Setup(getU8x8(), u8x8_d_ls027b7dh01_m0_400x240, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  2500. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  2501. }
  2502. };
  2503. #endif
  2504. class U8X8_LS013B7DH05_144X168_4W_SW_SPI : public U8X8 {
  2505. public: U8X8_LS013B7DH05_144X168_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2506. u8x8_Setup(getU8x8(), u8x8_d_ls013b7dh05_144x168, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2507. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  2508. }
  2509. };
  2510. #if defined U8G2_USE_HW_SPI
  2511. class U8X8_LS013B7DH05_144X168_4W_HW_SPI : public U8X8 {
  2512. public: U8X8_LS013B7DH05_144X168_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2513. u8x8_Setup(getU8x8(), u8x8_d_ls013b7dh05_144x168, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  2514. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  2515. }
  2516. };
  2517. #endif
  2518. class U8X8_UC1701_EA_DOGS102_4W_SW_SPI : public U8X8 {
  2519. public: U8X8_UC1701_EA_DOGS102_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2520. u8x8_Setup(getU8x8(), u8x8_d_uc1701_ea_dogs102, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2521. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  2522. }
  2523. };
  2524. #if defined U8G2_USE_HW_SPI
  2525. class U8X8_UC1701_EA_DOGS102_4W_HW_SPI : public U8X8 {
  2526. public: U8X8_UC1701_EA_DOGS102_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2527. u8x8_Setup(getU8x8(), u8x8_d_uc1701_ea_dogs102, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  2528. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  2529. }
  2530. };
  2531. #endif
  2532. class U8X8_UC1701_EA_DOGS102_3W_SW_SPI : public U8X8 {
  2533. public: U8X8_UC1701_EA_DOGS102_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2534. u8x8_Setup(getU8x8(), u8x8_d_uc1701_ea_dogs102, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2535. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  2536. }
  2537. };
  2538. class U8X8_UC1701_EA_DOGS102_6800 : public U8X8 {
  2539. public: U8X8_UC1701_EA_DOGS102_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2540. u8x8_Setup(getU8x8(), u8x8_d_uc1701_ea_dogs102, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  2541. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2542. }
  2543. };
  2544. class U8X8_UC1701_EA_DOGS102_8080 : public U8X8 {
  2545. public: U8X8_UC1701_EA_DOGS102_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2546. u8x8_Setup(getU8x8(), u8x8_d_uc1701_ea_dogs102, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  2547. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2548. }
  2549. };
  2550. class U8X8_UC1701_MINI12864_4W_SW_SPI : public U8X8 {
  2551. public: U8X8_UC1701_MINI12864_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2552. u8x8_Setup(getU8x8(), u8x8_d_uc1701_mini12864, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2553. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  2554. }
  2555. };
  2556. #if defined U8G2_USE_HW_SPI
  2557. class U8X8_UC1701_MINI12864_4W_HW_SPI : public U8X8 {
  2558. public: U8X8_UC1701_MINI12864_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2559. u8x8_Setup(getU8x8(), u8x8_d_uc1701_mini12864, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  2560. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  2561. }
  2562. };
  2563. #endif
  2564. class U8X8_UC1701_MINI12864_3W_SW_SPI : public U8X8 {
  2565. public: U8X8_UC1701_MINI12864_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2566. u8x8_Setup(getU8x8(), u8x8_d_uc1701_mini12864, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2567. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  2568. }
  2569. };
  2570. class U8X8_UC1701_MINI12864_6800 : public U8X8 {
  2571. public: U8X8_UC1701_MINI12864_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2572. u8x8_Setup(getU8x8(), u8x8_d_uc1701_mini12864, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  2573. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2574. }
  2575. };
  2576. class U8X8_UC1701_MINI12864_8080 : public U8X8 {
  2577. public: U8X8_UC1701_MINI12864_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2578. u8x8_Setup(getU8x8(), u8x8_d_uc1701_mini12864, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  2579. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2580. }
  2581. };
  2582. class U8X8_PCD8544_84X48_4W_SW_SPI : public U8X8 {
  2583. public: U8X8_PCD8544_84X48_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2584. u8x8_Setup(getU8x8(), u8x8_d_pcd8544_84x48, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2585. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  2586. }
  2587. };
  2588. #if defined U8G2_USE_HW_SPI
  2589. class U8X8_PCD8544_84X48_4W_HW_SPI : public U8X8 {
  2590. public: U8X8_PCD8544_84X48_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2591. u8x8_Setup(getU8x8(), u8x8_d_pcd8544_84x48, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  2592. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  2593. }
  2594. };
  2595. #endif
  2596. class U8X8_PCD8544_84X48_3W_SW_SPI : public U8X8 {
  2597. public: U8X8_PCD8544_84X48_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2598. u8x8_Setup(getU8x8(), u8x8_d_pcd8544_84x48, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2599. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  2600. }
  2601. };
  2602. class U8X8_PCF8812_96X65_4W_SW_SPI : public U8X8 {
  2603. public: U8X8_PCF8812_96X65_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2604. u8x8_Setup(getU8x8(), u8x8_d_pcf8812_96x65, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2605. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  2606. }
  2607. };
  2608. #if defined U8G2_USE_HW_SPI
  2609. class U8X8_PCF8812_96X65_4W_HW_SPI : public U8X8 {
  2610. public: U8X8_PCF8812_96X65_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2611. u8x8_Setup(getU8x8(), u8x8_d_pcf8812_96x65, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  2612. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  2613. }
  2614. };
  2615. #endif
  2616. class U8X8_PCF8812_96X65_3W_SW_SPI : public U8X8 {
  2617. public: U8X8_PCF8812_96X65_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2618. u8x8_Setup(getU8x8(), u8x8_d_pcf8812_96x65, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2619. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  2620. }
  2621. };
  2622. class U8X8_HX1230_96X68_4W_SW_SPI : public U8X8 {
  2623. public: U8X8_HX1230_96X68_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2624. u8x8_Setup(getU8x8(), u8x8_d_hx1230_96x68, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2625. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  2626. }
  2627. };
  2628. #if defined U8G2_USE_HW_SPI
  2629. class U8X8_HX1230_96X68_4W_HW_SPI : public U8X8 {
  2630. public: U8X8_HX1230_96X68_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2631. u8x8_Setup(getU8x8(), u8x8_d_hx1230_96x68, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  2632. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  2633. }
  2634. };
  2635. #endif
  2636. class U8X8_HX1230_96X68_3W_SW_SPI : public U8X8 {
  2637. public: U8X8_HX1230_96X68_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2638. u8x8_Setup(getU8x8(), u8x8_d_hx1230_96x68, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2639. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  2640. }
  2641. };
  2642. class U8X8_UC1604_JLX19264_4W_SW_SPI : public U8X8 {
  2643. public: U8X8_UC1604_JLX19264_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2644. u8x8_Setup(getU8x8(), u8x8_d_uc1604_jlx19264, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2645. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  2646. }
  2647. };
  2648. #if defined U8G2_USE_HW_SPI
  2649. class U8X8_UC1604_JLX19264_4W_HW_SPI : public U8X8 {
  2650. public: U8X8_UC1604_JLX19264_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2651. u8x8_Setup(getU8x8(), u8x8_d_uc1604_jlx19264, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  2652. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  2653. }
  2654. };
  2655. #endif
  2656. class U8X8_UC1604_JLX19264_3W_SW_SPI : public U8X8 {
  2657. public: U8X8_UC1604_JLX19264_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2658. u8x8_Setup(getU8x8(), u8x8_d_uc1604_jlx19264, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2659. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  2660. }
  2661. };
  2662. class U8X8_UC1604_JLX19264_6800 : public U8X8 {
  2663. public: U8X8_UC1604_JLX19264_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2664. u8x8_Setup(getU8x8(), u8x8_d_uc1604_jlx19264, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  2665. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2666. }
  2667. };
  2668. class U8X8_UC1604_JLX19264_8080 : public U8X8 {
  2669. public: U8X8_UC1604_JLX19264_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2670. u8x8_Setup(getU8x8(), u8x8_d_uc1604_jlx19264, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  2671. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2672. }
  2673. };
  2674. class U8X8_UC1604_JLX19264_SW_I2C : public U8X8 {
  2675. public: U8X8_UC1604_JLX19264_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2676. u8x8_Setup(getU8x8(), u8x8_d_uc1604_jlx19264, u8x8_cad_uc16xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  2677. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  2678. }
  2679. };
  2680. #if defined U8G2_USE_HW_I2C
  2681. class U8X8_UC1604_JLX19264_HW_I2C : public U8X8 {
  2682. public: U8X8_UC1604_JLX19264_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  2683. u8x8_Setup(getU8x8(), u8x8_d_uc1604_jlx19264, u8x8_cad_uc16xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  2684. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  2685. }
  2686. };
  2687. #endif
  2688. class U8X8_UC1608_ERC24064_4W_SW_SPI : public U8X8 {
  2689. public: U8X8_UC1608_ERC24064_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2690. u8x8_Setup(getU8x8(), u8x8_d_uc1608_erc24064, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2691. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  2692. }
  2693. };
  2694. #if defined U8G2_USE_HW_SPI
  2695. class U8X8_UC1608_ERC24064_4W_HW_SPI : public U8X8 {
  2696. public: U8X8_UC1608_ERC24064_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2697. u8x8_Setup(getU8x8(), u8x8_d_uc1608_erc24064, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  2698. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  2699. }
  2700. };
  2701. #endif
  2702. class U8X8_UC1608_ERC24064_3W_SW_SPI : public U8X8 {
  2703. public: U8X8_UC1608_ERC24064_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2704. u8x8_Setup(getU8x8(), u8x8_d_uc1608_erc24064, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2705. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  2706. }
  2707. };
  2708. class U8X8_UC1608_ERC24064_6800 : public U8X8 {
  2709. public: U8X8_UC1608_ERC24064_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2710. u8x8_Setup(getU8x8(), u8x8_d_uc1608_erc24064, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  2711. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2712. }
  2713. };
  2714. class U8X8_UC1608_ERC24064_8080 : public U8X8 {
  2715. public: U8X8_UC1608_ERC24064_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2716. u8x8_Setup(getU8x8(), u8x8_d_uc1608_erc24064, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  2717. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2718. }
  2719. };
  2720. class U8X8_UC1608_DEM240064_4W_SW_SPI : public U8X8 {
  2721. public: U8X8_UC1608_DEM240064_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2722. u8x8_Setup(getU8x8(), u8x8_d_uc1608_dem240064, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2723. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  2724. }
  2725. };
  2726. #if defined U8G2_USE_HW_SPI
  2727. class U8X8_UC1608_DEM240064_4W_HW_SPI : public U8X8 {
  2728. public: U8X8_UC1608_DEM240064_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2729. u8x8_Setup(getU8x8(), u8x8_d_uc1608_dem240064, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  2730. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  2731. }
  2732. };
  2733. #endif
  2734. class U8X8_UC1608_DEM240064_3W_SW_SPI : public U8X8 {
  2735. public: U8X8_UC1608_DEM240064_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2736. u8x8_Setup(getU8x8(), u8x8_d_uc1608_dem240064, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2737. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  2738. }
  2739. };
  2740. class U8X8_UC1608_DEM240064_6800 : public U8X8 {
  2741. public: U8X8_UC1608_DEM240064_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2742. u8x8_Setup(getU8x8(), u8x8_d_uc1608_dem240064, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  2743. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2744. }
  2745. };
  2746. class U8X8_UC1608_DEM240064_8080 : public U8X8 {
  2747. public: U8X8_UC1608_DEM240064_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2748. u8x8_Setup(getU8x8(), u8x8_d_uc1608_dem240064, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  2749. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2750. }
  2751. };
  2752. class U8X8_UC1608_ERC24064_SW_I2C : public U8X8 {
  2753. public: U8X8_UC1608_ERC24064_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2754. u8x8_Setup(getU8x8(), u8x8_d_uc1608_erc24064, u8x8_cad_uc16xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  2755. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  2756. }
  2757. };
  2758. #if defined U8G2_USE_HW_I2C
  2759. class U8X8_UC1608_ERC24064_HW_I2C : public U8X8 {
  2760. public: U8X8_UC1608_ERC24064_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  2761. u8x8_Setup(getU8x8(), u8x8_d_uc1608_erc24064, u8x8_cad_uc16xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  2762. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  2763. }
  2764. };
  2765. #endif
  2766. class U8X8_UC1608_DEM240064_SW_I2C : public U8X8 {
  2767. public: U8X8_UC1608_DEM240064_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2768. u8x8_Setup(getU8x8(), u8x8_d_uc1608_dem240064, u8x8_cad_uc16xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  2769. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  2770. }
  2771. };
  2772. #if defined U8G2_USE_HW_I2C
  2773. class U8X8_UC1608_DEM240064_HW_I2C : public U8X8 {
  2774. public: U8X8_UC1608_DEM240064_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  2775. u8x8_Setup(getU8x8(), u8x8_d_uc1608_dem240064, u8x8_cad_uc16xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  2776. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  2777. }
  2778. };
  2779. #endif
  2780. class U8X8_UC1608_ERC240120_4W_SW_SPI : public U8X8 {
  2781. public: U8X8_UC1608_ERC240120_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2782. u8x8_Setup(getU8x8(), u8x8_d_uc1608_erc240120, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2783. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  2784. }
  2785. };
  2786. #if defined U8G2_USE_HW_SPI
  2787. class U8X8_UC1608_ERC240120_4W_HW_SPI : public U8X8 {
  2788. public: U8X8_UC1608_ERC240120_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2789. u8x8_Setup(getU8x8(), u8x8_d_uc1608_erc240120, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  2790. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  2791. }
  2792. };
  2793. #endif
  2794. class U8X8_UC1608_ERC240120_3W_SW_SPI : public U8X8 {
  2795. public: U8X8_UC1608_ERC240120_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2796. u8x8_Setup(getU8x8(), u8x8_d_uc1608_erc240120, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2797. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  2798. }
  2799. };
  2800. class U8X8_UC1608_ERC240120_6800 : public U8X8 {
  2801. public: U8X8_UC1608_ERC240120_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2802. u8x8_Setup(getU8x8(), u8x8_d_uc1608_erc240120, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  2803. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2804. }
  2805. };
  2806. class U8X8_UC1608_ERC240120_8080 : public U8X8 {
  2807. public: U8X8_UC1608_ERC240120_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2808. u8x8_Setup(getU8x8(), u8x8_d_uc1608_erc240120, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  2809. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2810. }
  2811. };
  2812. class U8X8_UC1608_ERC240120_SW_I2C : public U8X8 {
  2813. public: U8X8_UC1608_ERC240120_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2814. u8x8_Setup(getU8x8(), u8x8_d_uc1608_erc240120, u8x8_cad_uc16xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  2815. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  2816. }
  2817. };
  2818. #if defined U8G2_USE_HW_I2C
  2819. class U8X8_UC1608_ERC240120_HW_I2C : public U8X8 {
  2820. public: U8X8_UC1608_ERC240120_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  2821. u8x8_Setup(getU8x8(), u8x8_d_uc1608_erc240120, u8x8_cad_uc16xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  2822. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  2823. }
  2824. };
  2825. #endif
  2826. class U8X8_UC1608_240X128_4W_SW_SPI : public U8X8 {
  2827. public: U8X8_UC1608_240X128_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2828. u8x8_Setup(getU8x8(), u8x8_d_uc1608_240x128, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2829. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  2830. }
  2831. };
  2832. #if defined U8G2_USE_HW_SPI
  2833. class U8X8_UC1608_240X128_4W_HW_SPI : public U8X8 {
  2834. public: U8X8_UC1608_240X128_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2835. u8x8_Setup(getU8x8(), u8x8_d_uc1608_240x128, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  2836. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  2837. }
  2838. };
  2839. #endif
  2840. class U8X8_UC1608_240X128_3W_SW_SPI : public U8X8 {
  2841. public: U8X8_UC1608_240X128_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2842. u8x8_Setup(getU8x8(), u8x8_d_uc1608_240x128, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2843. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  2844. }
  2845. };
  2846. class U8X8_UC1608_240X128_6800 : public U8X8 {
  2847. public: U8X8_UC1608_240X128_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2848. u8x8_Setup(getU8x8(), u8x8_d_uc1608_240x128, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  2849. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2850. }
  2851. };
  2852. class U8X8_UC1608_240X128_8080 : public U8X8 {
  2853. public: U8X8_UC1608_240X128_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2854. u8x8_Setup(getU8x8(), u8x8_d_uc1608_240x128, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  2855. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2856. }
  2857. };
  2858. class U8X8_UC1608_240X128_SW_I2C : public U8X8 {
  2859. public: U8X8_UC1608_240X128_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2860. u8x8_Setup(getU8x8(), u8x8_d_uc1608_240x128, u8x8_cad_uc16xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  2861. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  2862. }
  2863. };
  2864. #if defined U8G2_USE_HW_I2C
  2865. class U8X8_UC1608_240X128_HW_I2C : public U8X8 {
  2866. public: U8X8_UC1608_240X128_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  2867. u8x8_Setup(getU8x8(), u8x8_d_uc1608_240x128, u8x8_cad_uc16xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  2868. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  2869. }
  2870. };
  2871. #endif
  2872. class U8X8_UC1609_SLG19264_4W_SW_SPI : public U8X8 {
  2873. public: U8X8_UC1609_SLG19264_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2874. u8x8_Setup(getU8x8(), u8x8_d_uc1609_slg19264, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2875. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  2876. }
  2877. };
  2878. #if defined U8G2_USE_HW_SPI
  2879. class U8X8_UC1609_SLG19264_4W_HW_SPI : public U8X8 {
  2880. public: U8X8_UC1609_SLG19264_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2881. u8x8_Setup(getU8x8(), u8x8_d_uc1609_slg19264, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  2882. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  2883. }
  2884. };
  2885. #endif
  2886. class U8X8_UC1609_SLG19264_3W_SW_SPI : public U8X8 {
  2887. public: U8X8_UC1609_SLG19264_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2888. u8x8_Setup(getU8x8(), u8x8_d_uc1609_slg19264, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2889. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  2890. }
  2891. };
  2892. class U8X8_UC1609_SLG19264_6800 : public U8X8 {
  2893. public: U8X8_UC1609_SLG19264_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2894. u8x8_Setup(getU8x8(), u8x8_d_uc1609_slg19264, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  2895. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2896. }
  2897. };
  2898. class U8X8_UC1609_SLG19264_8080 : public U8X8 {
  2899. public: U8X8_UC1609_SLG19264_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2900. u8x8_Setup(getU8x8(), u8x8_d_uc1609_slg19264, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  2901. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2902. }
  2903. };
  2904. class U8X8_UC1609_SLG19264_SW_I2C : public U8X8 {
  2905. public: U8X8_UC1609_SLG19264_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2906. u8x8_Setup(getU8x8(), u8x8_d_uc1609_slg19264, u8x8_cad_uc16xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  2907. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  2908. }
  2909. };
  2910. #if defined U8G2_USE_HW_I2C
  2911. class U8X8_UC1609_SLG19264_HW_I2C : public U8X8 {
  2912. public: U8X8_UC1609_SLG19264_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  2913. u8x8_Setup(getU8x8(), u8x8_d_uc1609_slg19264, u8x8_cad_uc16xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  2914. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  2915. }
  2916. };
  2917. #endif
  2918. class U8X8_UC1638_160X128_4W_SW_SPI : public U8X8 {
  2919. public: U8X8_UC1638_160X128_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2920. u8x8_Setup(getU8x8(), u8x8_d_uc1638_160x128, u8x8_cad_011, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2921. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  2922. }
  2923. };
  2924. #if defined U8G2_USE_HW_SPI
  2925. class U8X8_UC1638_160X128_4W_HW_SPI : public U8X8 {
  2926. public: U8X8_UC1638_160X128_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2927. u8x8_Setup(getU8x8(), u8x8_d_uc1638_160x128, u8x8_cad_011, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  2928. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  2929. }
  2930. };
  2931. #endif
  2932. class U8X8_UC1638_160X128_3W_SW_SPI : public U8X8 {
  2933. public: U8X8_UC1638_160X128_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2934. u8x8_Setup(getU8x8(), u8x8_d_uc1638_160x128, u8x8_cad_011, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2935. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  2936. }
  2937. };
  2938. class U8X8_UC1638_160X128_6800 : public U8X8 {
  2939. public: U8X8_UC1638_160X128_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2940. u8x8_Setup(getU8x8(), u8x8_d_uc1638_160x128, u8x8_cad_011, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  2941. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2942. }
  2943. };
  2944. class U8X8_UC1638_160X128_8080 : public U8X8 {
  2945. public: U8X8_UC1638_160X128_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2946. u8x8_Setup(getU8x8(), u8x8_d_uc1638_160x128, u8x8_cad_011, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  2947. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2948. }
  2949. };
  2950. class U8X8_UC1638_192X96_4W_SW_SPI : public U8X8 {
  2951. public: U8X8_UC1638_192X96_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2952. u8x8_Setup(getU8x8(), u8x8_d_uc1638_192x96, u8x8_cad_011, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2953. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  2954. }
  2955. };
  2956. #if defined U8G2_USE_HW_SPI
  2957. class U8X8_UC1638_192X96_4W_HW_SPI : public U8X8 {
  2958. public: U8X8_UC1638_192X96_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2959. u8x8_Setup(getU8x8(), u8x8_d_uc1638_192x96, u8x8_cad_011, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  2960. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  2961. }
  2962. };
  2963. #endif
  2964. class U8X8_UC1638_192X96_3W_SW_SPI : public U8X8 {
  2965. public: U8X8_UC1638_192X96_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2966. u8x8_Setup(getU8x8(), u8x8_d_uc1638_192x96, u8x8_cad_011, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2967. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  2968. }
  2969. };
  2970. class U8X8_UC1638_192X96_6800 : public U8X8 {
  2971. public: U8X8_UC1638_192X96_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2972. u8x8_Setup(getU8x8(), u8x8_d_uc1638_192x96, u8x8_cad_011, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  2973. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2974. }
  2975. };
  2976. class U8X8_UC1638_192X96_8080 : public U8X8 {
  2977. public: U8X8_UC1638_192X96_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2978. u8x8_Setup(getU8x8(), u8x8_d_uc1638_192x96, u8x8_cad_011, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  2979. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  2980. }
  2981. };
  2982. class U8X8_UC1638_192X96_SW_I2C : public U8X8 {
  2983. public: U8X8_UC1638_192X96_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2984. u8x8_Setup(getU8x8(), u8x8_d_uc1638_192x96, u8x8_cad_uc1638_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  2985. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  2986. }
  2987. };
  2988. #if defined U8G2_USE_HW_I2C
  2989. class U8X8_UC1638_192X96_HW_I2C : public U8X8 {
  2990. public: U8X8_UC1638_192X96_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  2991. u8x8_Setup(getU8x8(), u8x8_d_uc1638_192x96, u8x8_cad_uc1638_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  2992. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  2993. }
  2994. };
  2995. #endif
  2996. class U8X8_UC1610_EA_DOGXL160_4W_SW_SPI : public U8X8 {
  2997. public: U8X8_UC1610_EA_DOGXL160_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  2998. u8x8_Setup(getU8x8(), u8x8_d_uc1610_ea_dogxl160, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  2999. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  3000. }
  3001. };
  3002. #if defined U8G2_USE_HW_SPI
  3003. class U8X8_UC1610_EA_DOGXL160_4W_HW_SPI : public U8X8 {
  3004. public: U8X8_UC1610_EA_DOGXL160_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3005. u8x8_Setup(getU8x8(), u8x8_d_uc1610_ea_dogxl160, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  3006. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  3007. }
  3008. };
  3009. #endif
  3010. class U8X8_UC1610_EA_DOGXL160_3W_SW_SPI : public U8X8 {
  3011. public: U8X8_UC1610_EA_DOGXL160_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3012. u8x8_Setup(getU8x8(), u8x8_d_uc1610_ea_dogxl160, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3013. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  3014. }
  3015. };
  3016. class U8X8_UC1610_EA_DOGXL160_6800 : public U8X8 {
  3017. public: U8X8_UC1610_EA_DOGXL160_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3018. u8x8_Setup(getU8x8(), u8x8_d_uc1610_ea_dogxl160, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  3019. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3020. }
  3021. };
  3022. class U8X8_UC1610_EA_DOGXL160_8080 : public U8X8 {
  3023. public: U8X8_UC1610_EA_DOGXL160_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3024. u8x8_Setup(getU8x8(), u8x8_d_uc1610_ea_dogxl160, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  3025. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3026. }
  3027. };
  3028. class U8X8_UC1610_EA_DOGXL160_SW_I2C : public U8X8 {
  3029. public: U8X8_UC1610_EA_DOGXL160_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3030. u8x8_Setup(getU8x8(), u8x8_d_uc1610_ea_dogxl160, u8x8_cad_uc16xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  3031. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  3032. }
  3033. };
  3034. #if defined U8G2_USE_HW_I2C
  3035. class U8X8_UC1610_EA_DOGXL160_HW_I2C : public U8X8 {
  3036. public: U8X8_UC1610_EA_DOGXL160_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  3037. u8x8_Setup(getU8x8(), u8x8_d_uc1610_ea_dogxl160, u8x8_cad_uc16xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  3038. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  3039. }
  3040. };
  3041. #endif
  3042. class U8X8_UC1611_EA_DOGM240_4W_SW_SPI : public U8X8 {
  3043. public: U8X8_UC1611_EA_DOGM240_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3044. u8x8_Setup(getU8x8(), u8x8_d_uc1611_ea_dogm240, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3045. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  3046. }
  3047. };
  3048. #if defined U8G2_USE_HW_SPI
  3049. class U8X8_UC1611_EA_DOGM240_4W_HW_SPI : public U8X8 {
  3050. public: U8X8_UC1611_EA_DOGM240_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3051. u8x8_Setup(getU8x8(), u8x8_d_uc1611_ea_dogm240, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  3052. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  3053. }
  3054. };
  3055. #endif
  3056. class U8X8_UC1611_EA_DOGM240_3W_SW_SPI : public U8X8 {
  3057. public: U8X8_UC1611_EA_DOGM240_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3058. u8x8_Setup(getU8x8(), u8x8_d_uc1611_ea_dogm240, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3059. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  3060. }
  3061. };
  3062. class U8X8_UC1611_EA_DOGM240_6800 : public U8X8 {
  3063. public: U8X8_UC1611_EA_DOGM240_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3064. u8x8_Setup(getU8x8(), u8x8_d_uc1611_ea_dogm240, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  3065. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3066. }
  3067. };
  3068. class U8X8_UC1611_EA_DOGM240_8080 : public U8X8 {
  3069. public: U8X8_UC1611_EA_DOGM240_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3070. u8x8_Setup(getU8x8(), u8x8_d_uc1611_ea_dogm240, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  3071. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3072. }
  3073. };
  3074. class U8X8_UC1611_EA_DOGM240_SW_I2C : public U8X8 {
  3075. public: U8X8_UC1611_EA_DOGM240_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3076. u8x8_Setup(getU8x8(), u8x8_d_uc1611_ea_dogm240, u8x8_cad_uc16xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  3077. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  3078. }
  3079. };
  3080. #if defined U8G2_USE_HW_I2C
  3081. class U8X8_UC1611_EA_DOGM240_HW_I2C : public U8X8 {
  3082. public: U8X8_UC1611_EA_DOGM240_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  3083. u8x8_Setup(getU8x8(), u8x8_d_uc1611_ea_dogm240, u8x8_cad_uc16xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  3084. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  3085. }
  3086. };
  3087. #endif
  3088. class U8X8_UC1611_EA_DOGXL240_4W_SW_SPI : public U8X8 {
  3089. public: U8X8_UC1611_EA_DOGXL240_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3090. u8x8_Setup(getU8x8(), u8x8_d_uc1611_ea_dogxl240, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3091. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  3092. }
  3093. };
  3094. #if defined U8G2_USE_HW_SPI
  3095. class U8X8_UC1611_EA_DOGXL240_4W_HW_SPI : public U8X8 {
  3096. public: U8X8_UC1611_EA_DOGXL240_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3097. u8x8_Setup(getU8x8(), u8x8_d_uc1611_ea_dogxl240, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  3098. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  3099. }
  3100. };
  3101. #endif
  3102. class U8X8_UC1611_EA_DOGXL240_3W_SW_SPI : public U8X8 {
  3103. public: U8X8_UC1611_EA_DOGXL240_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3104. u8x8_Setup(getU8x8(), u8x8_d_uc1611_ea_dogxl240, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3105. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  3106. }
  3107. };
  3108. class U8X8_UC1611_EA_DOGXL240_6800 : public U8X8 {
  3109. public: U8X8_UC1611_EA_DOGXL240_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3110. u8x8_Setup(getU8x8(), u8x8_d_uc1611_ea_dogxl240, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  3111. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3112. }
  3113. };
  3114. class U8X8_UC1611_EA_DOGXL240_8080 : public U8X8 {
  3115. public: U8X8_UC1611_EA_DOGXL240_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3116. u8x8_Setup(getU8x8(), u8x8_d_uc1611_ea_dogxl240, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  3117. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3118. }
  3119. };
  3120. class U8X8_UC1611_EA_DOGXL240_SW_I2C : public U8X8 {
  3121. public: U8X8_UC1611_EA_DOGXL240_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3122. u8x8_Setup(getU8x8(), u8x8_d_uc1611_ea_dogxl240, u8x8_cad_uc16xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  3123. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  3124. }
  3125. };
  3126. #if defined U8G2_USE_HW_I2C
  3127. class U8X8_UC1611_EA_DOGXL240_HW_I2C : public U8X8 {
  3128. public: U8X8_UC1611_EA_DOGXL240_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  3129. u8x8_Setup(getU8x8(), u8x8_d_uc1611_ea_dogxl240, u8x8_cad_uc16xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  3130. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  3131. }
  3132. };
  3133. #endif
  3134. class U8X8_UC1611_EW50850_4W_SW_SPI : public U8X8 {
  3135. public: U8X8_UC1611_EW50850_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3136. u8x8_Setup(getU8x8(), u8x8_d_uc1611_ew50850, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3137. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  3138. }
  3139. };
  3140. #if defined U8G2_USE_HW_SPI
  3141. class U8X8_UC1611_EW50850_4W_HW_SPI : public U8X8 {
  3142. public: U8X8_UC1611_EW50850_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3143. u8x8_Setup(getU8x8(), u8x8_d_uc1611_ew50850, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  3144. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  3145. }
  3146. };
  3147. #endif
  3148. class U8X8_UC1611_EW50850_3W_SW_SPI : public U8X8 {
  3149. public: U8X8_UC1611_EW50850_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3150. u8x8_Setup(getU8x8(), u8x8_d_uc1611_ew50850, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3151. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  3152. }
  3153. };
  3154. class U8X8_UC1611_EW50850_6800 : public U8X8 {
  3155. public: U8X8_UC1611_EW50850_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3156. u8x8_Setup(getU8x8(), u8x8_d_uc1611_ew50850, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  3157. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3158. }
  3159. };
  3160. class U8X8_UC1611_EW50850_8080 : public U8X8 {
  3161. public: U8X8_UC1611_EW50850_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3162. u8x8_Setup(getU8x8(), u8x8_d_uc1611_ew50850, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  3163. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3164. }
  3165. };
  3166. class U8X8_UC1611_EW50850_SW_I2C : public U8X8 {
  3167. public: U8X8_UC1611_EW50850_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3168. u8x8_Setup(getU8x8(), u8x8_d_uc1611_ew50850, u8x8_cad_uc16xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  3169. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  3170. }
  3171. };
  3172. #if defined U8G2_USE_HW_I2C
  3173. class U8X8_UC1611_EW50850_HW_I2C : public U8X8 {
  3174. public: U8X8_UC1611_EW50850_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  3175. u8x8_Setup(getU8x8(), u8x8_d_uc1611_ew50850, u8x8_cad_uc16xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  3176. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  3177. }
  3178. };
  3179. #endif
  3180. class U8X8_UC1611_CG160160_4W_SW_SPI : public U8X8 {
  3181. public: U8X8_UC1611_CG160160_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3182. u8x8_Setup(getU8x8(), u8x8_d_uc1611_cg160160, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3183. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  3184. }
  3185. };
  3186. #if defined U8G2_USE_HW_SPI
  3187. class U8X8_UC1611_CG160160_4W_HW_SPI : public U8X8 {
  3188. public: U8X8_UC1611_CG160160_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3189. u8x8_Setup(getU8x8(), u8x8_d_uc1611_cg160160, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  3190. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  3191. }
  3192. };
  3193. #endif
  3194. class U8X8_UC1611_CG160160_3W_SW_SPI : public U8X8 {
  3195. public: U8X8_UC1611_CG160160_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3196. u8x8_Setup(getU8x8(), u8x8_d_uc1611_cg160160, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3197. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  3198. }
  3199. };
  3200. class U8X8_UC1611_CG160160_6800 : public U8X8 {
  3201. public: U8X8_UC1611_CG160160_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3202. u8x8_Setup(getU8x8(), u8x8_d_uc1611_cg160160, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  3203. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3204. }
  3205. };
  3206. class U8X8_UC1611_CG160160_8080 : public U8X8 {
  3207. public: U8X8_UC1611_CG160160_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3208. u8x8_Setup(getU8x8(), u8x8_d_uc1611_cg160160, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  3209. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3210. }
  3211. };
  3212. class U8X8_UC1611_CG160160_SW_I2C : public U8X8 {
  3213. public: U8X8_UC1611_CG160160_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3214. u8x8_Setup(getU8x8(), u8x8_d_uc1611_cg160160, u8x8_cad_uc16xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  3215. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  3216. }
  3217. };
  3218. #if defined U8G2_USE_HW_I2C
  3219. class U8X8_UC1611_CG160160_HW_I2C : public U8X8 {
  3220. public: U8X8_UC1611_CG160160_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  3221. u8x8_Setup(getU8x8(), u8x8_d_uc1611_cg160160, u8x8_cad_uc16xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  3222. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  3223. }
  3224. };
  3225. #endif
  3226. class U8X8_UC1611_IDS4073_4W_SW_SPI : public U8X8 {
  3227. public: U8X8_UC1611_IDS4073_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3228. u8x8_Setup(getU8x8(), u8x8_d_uc1611_ids4073, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3229. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  3230. }
  3231. };
  3232. #if defined U8G2_USE_HW_SPI
  3233. class U8X8_UC1611_IDS4073_4W_HW_SPI : public U8X8 {
  3234. public: U8X8_UC1611_IDS4073_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3235. u8x8_Setup(getU8x8(), u8x8_d_uc1611_ids4073, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  3236. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  3237. }
  3238. };
  3239. #endif
  3240. class U8X8_UC1611_IDS4073_3W_SW_SPI : public U8X8 {
  3241. public: U8X8_UC1611_IDS4073_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3242. u8x8_Setup(getU8x8(), u8x8_d_uc1611_ids4073, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3243. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  3244. }
  3245. };
  3246. class U8X8_UC1611_IDS4073_6800 : public U8X8 {
  3247. public: U8X8_UC1611_IDS4073_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3248. u8x8_Setup(getU8x8(), u8x8_d_uc1611_ids4073, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  3249. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3250. }
  3251. };
  3252. class U8X8_UC1611_IDS4073_8080 : public U8X8 {
  3253. public: U8X8_UC1611_IDS4073_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3254. u8x8_Setup(getU8x8(), u8x8_d_uc1611_ids4073, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  3255. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3256. }
  3257. };
  3258. class U8X8_UC1611_IDS4073_SW_I2C : public U8X8 {
  3259. public: U8X8_UC1611_IDS4073_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3260. u8x8_Setup(getU8x8(), u8x8_d_uc1611_ids4073, u8x8_cad_uc16xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  3261. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  3262. }
  3263. };
  3264. #if defined U8G2_USE_HW_I2C
  3265. class U8X8_UC1611_IDS4073_HW_I2C : public U8X8 {
  3266. public: U8X8_UC1611_IDS4073_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  3267. u8x8_Setup(getU8x8(), u8x8_d_uc1611_ids4073, u8x8_cad_uc16xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  3268. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  3269. }
  3270. };
  3271. #endif
  3272. class U8X8_ST7511_AVD_320X240_4W_SW_SPI : public U8X8 {
  3273. public: U8X8_ST7511_AVD_320X240_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3274. u8x8_Setup(getU8x8(), u8x8_d_st7511_avd_320x240, u8x8_cad_011, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3275. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  3276. }
  3277. };
  3278. #if defined U8G2_USE_HW_SPI
  3279. class U8X8_ST7511_AVD_320X240_4W_HW_SPI : public U8X8 {
  3280. public: U8X8_ST7511_AVD_320X240_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3281. u8x8_Setup(getU8x8(), u8x8_d_st7511_avd_320x240, u8x8_cad_011, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  3282. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  3283. }
  3284. };
  3285. #endif
  3286. class U8X8_ST7511_AVD_320X240_3W_SW_SPI : public U8X8 {
  3287. public: U8X8_ST7511_AVD_320X240_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3288. u8x8_Setup(getU8x8(), u8x8_d_st7511_avd_320x240, u8x8_cad_011, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3289. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  3290. }
  3291. };
  3292. class U8X8_ST7511_AVD_320X240_6800 : public U8X8 {
  3293. public: U8X8_ST7511_AVD_320X240_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3294. u8x8_Setup(getU8x8(), u8x8_d_st7511_avd_320x240, u8x8_cad_011, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  3295. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3296. }
  3297. };
  3298. class U8X8_ST7511_AVD_320X240_8080 : public U8X8 {
  3299. public: U8X8_ST7511_AVD_320X240_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3300. u8x8_Setup(getU8x8(), u8x8_d_st7511_avd_320x240, u8x8_cad_011, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  3301. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3302. }
  3303. };
  3304. class U8X8_ST7528_NHD_C160100_4W_SW_SPI : public U8X8 {
  3305. public: U8X8_ST7528_NHD_C160100_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3306. u8x8_Setup(getU8x8(), u8x8_d_st7528_nhd_c160100, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3307. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  3308. }
  3309. };
  3310. #if defined U8G2_USE_HW_SPI
  3311. class U8X8_ST7528_NHD_C160100_4W_HW_SPI : public U8X8 {
  3312. public: U8X8_ST7528_NHD_C160100_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3313. u8x8_Setup(getU8x8(), u8x8_d_st7528_nhd_c160100, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  3314. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  3315. }
  3316. };
  3317. #endif
  3318. class U8X8_ST7528_NHD_C160100_6800 : public U8X8 {
  3319. public: U8X8_ST7528_NHD_C160100_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3320. u8x8_Setup(getU8x8(), u8x8_d_st7528_nhd_c160100, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  3321. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3322. }
  3323. };
  3324. class U8X8_ST7528_NHD_C160100_8080 : public U8X8 {
  3325. public: U8X8_ST7528_NHD_C160100_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3326. u8x8_Setup(getU8x8(), u8x8_d_st7528_nhd_c160100, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  3327. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3328. }
  3329. };
  3330. class U8X8_ST7528_NHD_C160100_SW_I2C : public U8X8 {
  3331. public: U8X8_ST7528_NHD_C160100_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3332. u8x8_Setup(getU8x8(), u8x8_d_st7528_nhd_c160100, u8x8_cad_ssd13xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  3333. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  3334. }
  3335. };
  3336. #if defined U8G2_USE_HW_I2C
  3337. class U8X8_ST7528_NHD_C160100_HW_I2C : public U8X8 {
  3338. public: U8X8_ST7528_NHD_C160100_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  3339. u8x8_Setup(getU8x8(), u8x8_d_st7528_nhd_c160100, u8x8_cad_ssd13xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  3340. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  3341. }
  3342. };
  3343. #endif
  3344. class U8X8_ST7528_ERC16064_4W_SW_SPI : public U8X8 {
  3345. public: U8X8_ST7528_ERC16064_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3346. u8x8_Setup(getU8x8(), u8x8_d_st7528_erc16064, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3347. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  3348. }
  3349. };
  3350. #if defined U8G2_USE_HW_SPI
  3351. class U8X8_ST7528_ERC16064_4W_HW_SPI : public U8X8 {
  3352. public: U8X8_ST7528_ERC16064_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3353. u8x8_Setup(getU8x8(), u8x8_d_st7528_erc16064, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  3354. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  3355. }
  3356. };
  3357. #endif
  3358. class U8X8_ST7528_ERC16064_6800 : public U8X8 {
  3359. public: U8X8_ST7528_ERC16064_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3360. u8x8_Setup(getU8x8(), u8x8_d_st7528_erc16064, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  3361. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3362. }
  3363. };
  3364. class U8X8_ST7528_ERC16064_8080 : public U8X8 {
  3365. public: U8X8_ST7528_ERC16064_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3366. u8x8_Setup(getU8x8(), u8x8_d_st7528_erc16064, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  3367. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3368. }
  3369. };
  3370. class U8X8_ST7528_ERC16064_SW_I2C : public U8X8 {
  3371. public: U8X8_ST7528_ERC16064_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3372. u8x8_Setup(getU8x8(), u8x8_d_st7528_erc16064, u8x8_cad_ssd13xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  3373. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  3374. }
  3375. };
  3376. #if defined U8G2_USE_HW_I2C
  3377. class U8X8_ST7528_ERC16064_HW_I2C : public U8X8 {
  3378. public: U8X8_ST7528_ERC16064_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  3379. u8x8_Setup(getU8x8(), u8x8_d_st7528_erc16064, u8x8_cad_ssd13xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  3380. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  3381. }
  3382. };
  3383. #endif
  3384. class U8X8_UC1617_JLX128128_4W_SW_SPI : public U8X8 {
  3385. public: U8X8_UC1617_JLX128128_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3386. u8x8_Setup(getU8x8(), u8x8_d_uc1617_jlx128128, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3387. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  3388. }
  3389. };
  3390. #if defined U8G2_USE_HW_SPI
  3391. class U8X8_UC1617_JLX128128_4W_HW_SPI : public U8X8 {
  3392. public: U8X8_UC1617_JLX128128_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3393. u8x8_Setup(getU8x8(), u8x8_d_uc1617_jlx128128, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  3394. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  3395. }
  3396. };
  3397. #endif
  3398. class U8X8_UC1617_JLX128128_3W_SW_SPI : public U8X8 {
  3399. public: U8X8_UC1617_JLX128128_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3400. u8x8_Setup(getU8x8(), u8x8_d_uc1617_jlx128128, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3401. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  3402. }
  3403. };
  3404. class U8X8_UC1617_JLX128128_SW_I2C : public U8X8 {
  3405. public: U8X8_UC1617_JLX128128_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3406. u8x8_Setup(getU8x8(), u8x8_d_uc1617_jlx128128, u8x8_cad_uc16xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  3407. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  3408. }
  3409. };
  3410. #if defined U8G2_USE_HW_I2C
  3411. class U8X8_UC1617_JLX128128_HW_I2C : public U8X8 {
  3412. public: U8X8_UC1617_JLX128128_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  3413. u8x8_Setup(getU8x8(), u8x8_d_uc1617_jlx128128, u8x8_cad_uc16xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  3414. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  3415. }
  3416. };
  3417. #endif
  3418. class U8X8_ST7565_EA_DOGM128_4W_SW_SPI : public U8X8 {
  3419. public: U8X8_ST7565_EA_DOGM128_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3420. u8x8_Setup(getU8x8(), u8x8_d_st7565_ea_dogm128, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3421. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  3422. }
  3423. };
  3424. #if defined U8G2_USE_HW_SPI
  3425. class U8X8_ST7565_EA_DOGM128_4W_HW_SPI : public U8X8 {
  3426. public: U8X8_ST7565_EA_DOGM128_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3427. u8x8_Setup(getU8x8(), u8x8_d_st7565_ea_dogm128, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  3428. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  3429. }
  3430. };
  3431. #endif
  3432. class U8X8_ST7565_EA_DOGM128_3W_SW_SPI : public U8X8 {
  3433. public: U8X8_ST7565_EA_DOGM128_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3434. u8x8_Setup(getU8x8(), u8x8_d_st7565_ea_dogm128, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3435. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  3436. }
  3437. };
  3438. class U8X8_ST7565_EA_DOGM128_6800 : public U8X8 {
  3439. public: U8X8_ST7565_EA_DOGM128_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3440. u8x8_Setup(getU8x8(), u8x8_d_st7565_ea_dogm128, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  3441. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3442. }
  3443. };
  3444. class U8X8_ST7565_EA_DOGM128_8080 : public U8X8 {
  3445. public: U8X8_ST7565_EA_DOGM128_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3446. u8x8_Setup(getU8x8(), u8x8_d_st7565_ea_dogm128, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  3447. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3448. }
  3449. };
  3450. class U8X8_ST7565_LM6063_4W_SW_SPI : public U8X8 {
  3451. public: U8X8_ST7565_LM6063_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3452. u8x8_Setup(getU8x8(), u8x8_d_st7565_lm6063, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3453. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  3454. }
  3455. };
  3456. #if defined U8G2_USE_HW_SPI
  3457. class U8X8_ST7565_LM6063_4W_HW_SPI : public U8X8 {
  3458. public: U8X8_ST7565_LM6063_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3459. u8x8_Setup(getU8x8(), u8x8_d_st7565_lm6063, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  3460. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  3461. }
  3462. };
  3463. #endif
  3464. class U8X8_ST7565_LM6063_3W_SW_SPI : public U8X8 {
  3465. public: U8X8_ST7565_LM6063_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3466. u8x8_Setup(getU8x8(), u8x8_d_st7565_lm6063, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3467. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  3468. }
  3469. };
  3470. class U8X8_ST7565_LM6063_6800 : public U8X8 {
  3471. public: U8X8_ST7565_LM6063_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3472. u8x8_Setup(getU8x8(), u8x8_d_st7565_lm6063, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  3473. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3474. }
  3475. };
  3476. class U8X8_ST7565_LM6063_8080 : public U8X8 {
  3477. public: U8X8_ST7565_LM6063_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3478. u8x8_Setup(getU8x8(), u8x8_d_st7565_lm6063, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  3479. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3480. }
  3481. };
  3482. class U8X8_ST7565_64128N_4W_SW_SPI : public U8X8 {
  3483. public: U8X8_ST7565_64128N_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3484. u8x8_Setup(getU8x8(), u8x8_d_st7565_64128n, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3485. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  3486. }
  3487. };
  3488. #if defined U8G2_USE_HW_SPI
  3489. class U8X8_ST7565_64128N_4W_HW_SPI : public U8X8 {
  3490. public: U8X8_ST7565_64128N_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3491. u8x8_Setup(getU8x8(), u8x8_d_st7565_64128n, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  3492. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  3493. }
  3494. };
  3495. #endif
  3496. class U8X8_ST7565_64128N_3W_SW_SPI : public U8X8 {
  3497. public: U8X8_ST7565_64128N_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3498. u8x8_Setup(getU8x8(), u8x8_d_st7565_64128n, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3499. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  3500. }
  3501. };
  3502. class U8X8_ST7565_64128N_6800 : public U8X8 {
  3503. public: U8X8_ST7565_64128N_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3504. u8x8_Setup(getU8x8(), u8x8_d_st7565_64128n, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  3505. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3506. }
  3507. };
  3508. class U8X8_ST7565_64128N_8080 : public U8X8 {
  3509. public: U8X8_ST7565_64128N_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3510. u8x8_Setup(getU8x8(), u8x8_d_st7565_64128n, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  3511. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3512. }
  3513. };
  3514. class U8X8_ST7565_ZOLEN_128X64_4W_SW_SPI : public U8X8 {
  3515. public: U8X8_ST7565_ZOLEN_128X64_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3516. u8x8_Setup(getU8x8(), u8x8_d_st7565_zolen_128x64, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3517. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  3518. }
  3519. };
  3520. #if defined U8G2_USE_HW_SPI
  3521. class U8X8_ST7565_ZOLEN_128X64_4W_HW_SPI : public U8X8 {
  3522. public: U8X8_ST7565_ZOLEN_128X64_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3523. u8x8_Setup(getU8x8(), u8x8_d_st7565_zolen_128x64, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  3524. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  3525. }
  3526. };
  3527. #endif
  3528. class U8X8_ST7565_ZOLEN_128X64_3W_SW_SPI : public U8X8 {
  3529. public: U8X8_ST7565_ZOLEN_128X64_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3530. u8x8_Setup(getU8x8(), u8x8_d_st7565_zolen_128x64, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3531. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  3532. }
  3533. };
  3534. class U8X8_ST7565_ZOLEN_128X64_6800 : public U8X8 {
  3535. public: U8X8_ST7565_ZOLEN_128X64_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3536. u8x8_Setup(getU8x8(), u8x8_d_st7565_zolen_128x64, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  3537. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3538. }
  3539. };
  3540. class U8X8_ST7565_ZOLEN_128X64_8080 : public U8X8 {
  3541. public: U8X8_ST7565_ZOLEN_128X64_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3542. u8x8_Setup(getU8x8(), u8x8_d_st7565_zolen_128x64, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  3543. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3544. }
  3545. };
  3546. class U8X8_ST7565_LM6059_4W_SW_SPI : public U8X8 {
  3547. public: U8X8_ST7565_LM6059_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3548. u8x8_Setup(getU8x8(), u8x8_d_st7565_lm6059, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3549. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  3550. }
  3551. };
  3552. #if defined U8G2_USE_HW_SPI
  3553. class U8X8_ST7565_LM6059_4W_HW_SPI : public U8X8 {
  3554. public: U8X8_ST7565_LM6059_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3555. u8x8_Setup(getU8x8(), u8x8_d_st7565_lm6059, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  3556. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  3557. }
  3558. };
  3559. #endif
  3560. class U8X8_ST7565_LM6059_3W_SW_SPI : public U8X8 {
  3561. public: U8X8_ST7565_LM6059_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3562. u8x8_Setup(getU8x8(), u8x8_d_st7565_lm6059, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3563. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  3564. }
  3565. };
  3566. class U8X8_ST7565_LM6059_6800 : public U8X8 {
  3567. public: U8X8_ST7565_LM6059_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3568. u8x8_Setup(getU8x8(), u8x8_d_st7565_lm6059, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  3569. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3570. }
  3571. };
  3572. class U8X8_ST7565_LM6059_8080 : public U8X8 {
  3573. public: U8X8_ST7565_LM6059_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3574. u8x8_Setup(getU8x8(), u8x8_d_st7565_lm6059, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  3575. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3576. }
  3577. };
  3578. class U8X8_ST7565_KS0713_4W_SW_SPI : public U8X8 {
  3579. public: U8X8_ST7565_KS0713_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3580. u8x8_Setup(getU8x8(), u8x8_d_st7565_ks0713, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3581. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  3582. }
  3583. };
  3584. #if defined U8G2_USE_HW_SPI
  3585. class U8X8_ST7565_KS0713_4W_HW_SPI : public U8X8 {
  3586. public: U8X8_ST7565_KS0713_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3587. u8x8_Setup(getU8x8(), u8x8_d_st7565_ks0713, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  3588. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  3589. }
  3590. };
  3591. #endif
  3592. class U8X8_ST7565_KS0713_3W_SW_SPI : public U8X8 {
  3593. public: U8X8_ST7565_KS0713_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3594. u8x8_Setup(getU8x8(), u8x8_d_st7565_ks0713, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3595. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  3596. }
  3597. };
  3598. class U8X8_ST7565_KS0713_6800 : public U8X8 {
  3599. public: U8X8_ST7565_KS0713_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3600. u8x8_Setup(getU8x8(), u8x8_d_st7565_ks0713, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  3601. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3602. }
  3603. };
  3604. class U8X8_ST7565_KS0713_8080 : public U8X8 {
  3605. public: U8X8_ST7565_KS0713_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3606. u8x8_Setup(getU8x8(), u8x8_d_st7565_ks0713, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  3607. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3608. }
  3609. };
  3610. class U8X8_ST7565_LX12864_4W_SW_SPI : public U8X8 {
  3611. public: U8X8_ST7565_LX12864_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3612. u8x8_Setup(getU8x8(), u8x8_d_st7565_lx12864, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3613. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  3614. }
  3615. };
  3616. #if defined U8G2_USE_HW_SPI
  3617. class U8X8_ST7565_LX12864_4W_HW_SPI : public U8X8 {
  3618. public: U8X8_ST7565_LX12864_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3619. u8x8_Setup(getU8x8(), u8x8_d_st7565_lx12864, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  3620. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  3621. }
  3622. };
  3623. #endif
  3624. class U8X8_ST7565_LX12864_3W_SW_SPI : public U8X8 {
  3625. public: U8X8_ST7565_LX12864_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3626. u8x8_Setup(getU8x8(), u8x8_d_st7565_lx12864, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3627. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  3628. }
  3629. };
  3630. class U8X8_ST7565_LX12864_6800 : public U8X8 {
  3631. public: U8X8_ST7565_LX12864_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3632. u8x8_Setup(getU8x8(), u8x8_d_st7565_lx12864, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  3633. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3634. }
  3635. };
  3636. class U8X8_ST7565_LX12864_8080 : public U8X8 {
  3637. public: U8X8_ST7565_LX12864_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3638. u8x8_Setup(getU8x8(), u8x8_d_st7565_lx12864, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  3639. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3640. }
  3641. };
  3642. class U8X8_ST7565_ERC12864_4W_SW_SPI : public U8X8 {
  3643. public: U8X8_ST7565_ERC12864_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3644. u8x8_Setup(getU8x8(), u8x8_d_st7565_erc12864, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3645. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  3646. }
  3647. };
  3648. #if defined U8G2_USE_HW_SPI
  3649. class U8X8_ST7565_ERC12864_4W_HW_SPI : public U8X8 {
  3650. public: U8X8_ST7565_ERC12864_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3651. u8x8_Setup(getU8x8(), u8x8_d_st7565_erc12864, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  3652. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  3653. }
  3654. };
  3655. #endif
  3656. class U8X8_ST7565_ERC12864_3W_SW_SPI : public U8X8 {
  3657. public: U8X8_ST7565_ERC12864_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3658. u8x8_Setup(getU8x8(), u8x8_d_st7565_erc12864, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3659. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  3660. }
  3661. };
  3662. class U8X8_ST7565_ERC12864_6800 : public U8X8 {
  3663. public: U8X8_ST7565_ERC12864_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3664. u8x8_Setup(getU8x8(), u8x8_d_st7565_erc12864, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  3665. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3666. }
  3667. };
  3668. class U8X8_ST7565_ERC12864_8080 : public U8X8 {
  3669. public: U8X8_ST7565_ERC12864_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3670. u8x8_Setup(getU8x8(), u8x8_d_st7565_erc12864, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  3671. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3672. }
  3673. };
  3674. class U8X8_ST7565_ERC12864_ALT_4W_SW_SPI : public U8X8 {
  3675. public: U8X8_ST7565_ERC12864_ALT_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3676. u8x8_Setup(getU8x8(), u8x8_d_st7565_erc12864_alt, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3677. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  3678. }
  3679. };
  3680. #if defined U8G2_USE_HW_SPI
  3681. class U8X8_ST7565_ERC12864_ALT_4W_HW_SPI : public U8X8 {
  3682. public: U8X8_ST7565_ERC12864_ALT_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3683. u8x8_Setup(getU8x8(), u8x8_d_st7565_erc12864_alt, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  3684. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  3685. }
  3686. };
  3687. #endif
  3688. class U8X8_ST7565_ERC12864_ALT_3W_SW_SPI : public U8X8 {
  3689. public: U8X8_ST7565_ERC12864_ALT_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3690. u8x8_Setup(getU8x8(), u8x8_d_st7565_erc12864_alt, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3691. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  3692. }
  3693. };
  3694. class U8X8_ST7565_ERC12864_ALT_6800 : public U8X8 {
  3695. public: U8X8_ST7565_ERC12864_ALT_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3696. u8x8_Setup(getU8x8(), u8x8_d_st7565_erc12864_alt, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  3697. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3698. }
  3699. };
  3700. class U8X8_ST7565_ERC12864_ALT_8080 : public U8X8 {
  3701. public: U8X8_ST7565_ERC12864_ALT_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3702. u8x8_Setup(getU8x8(), u8x8_d_st7565_erc12864_alt, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  3703. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3704. }
  3705. };
  3706. class U8X8_ST7565_NHD_C12864_4W_SW_SPI : public U8X8 {
  3707. public: U8X8_ST7565_NHD_C12864_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3708. u8x8_Setup(getU8x8(), u8x8_d_st7565_nhd_c12864, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3709. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  3710. }
  3711. };
  3712. #if defined U8G2_USE_HW_SPI
  3713. class U8X8_ST7565_NHD_C12864_4W_HW_SPI : public U8X8 {
  3714. public: U8X8_ST7565_NHD_C12864_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3715. u8x8_Setup(getU8x8(), u8x8_d_st7565_nhd_c12864, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  3716. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  3717. }
  3718. };
  3719. #endif
  3720. class U8X8_ST7565_NHD_C12864_3W_SW_SPI : public U8X8 {
  3721. public: U8X8_ST7565_NHD_C12864_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3722. u8x8_Setup(getU8x8(), u8x8_d_st7565_nhd_c12864, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3723. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  3724. }
  3725. };
  3726. class U8X8_ST7565_NHD_C12864_6800 : public U8X8 {
  3727. public: U8X8_ST7565_NHD_C12864_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3728. u8x8_Setup(getU8x8(), u8x8_d_st7565_nhd_c12864, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  3729. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3730. }
  3731. };
  3732. class U8X8_ST7565_NHD_C12864_8080 : public U8X8 {
  3733. public: U8X8_ST7565_NHD_C12864_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3734. u8x8_Setup(getU8x8(), u8x8_d_st7565_nhd_c12864, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  3735. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3736. }
  3737. };
  3738. class U8X8_ST7565_JLX12864_4W_SW_SPI : public U8X8 {
  3739. public: U8X8_ST7565_JLX12864_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3740. u8x8_Setup(getU8x8(), u8x8_d_st7565_jlx12864, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3741. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  3742. }
  3743. };
  3744. #if defined U8G2_USE_HW_SPI
  3745. class U8X8_ST7565_JLX12864_4W_HW_SPI : public U8X8 {
  3746. public: U8X8_ST7565_JLX12864_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3747. u8x8_Setup(getU8x8(), u8x8_d_st7565_jlx12864, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  3748. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  3749. }
  3750. };
  3751. #endif
  3752. class U8X8_ST7565_JLX12864_3W_SW_SPI : public U8X8 {
  3753. public: U8X8_ST7565_JLX12864_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3754. u8x8_Setup(getU8x8(), u8x8_d_st7565_jlx12864, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3755. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  3756. }
  3757. };
  3758. class U8X8_ST7565_JLX12864_6800 : public U8X8 {
  3759. public: U8X8_ST7565_JLX12864_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3760. u8x8_Setup(getU8x8(), u8x8_d_st7565_jlx12864, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  3761. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3762. }
  3763. };
  3764. class U8X8_ST7565_JLX12864_8080 : public U8X8 {
  3765. public: U8X8_ST7565_JLX12864_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3766. u8x8_Setup(getU8x8(), u8x8_d_st7565_jlx12864, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  3767. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3768. }
  3769. };
  3770. class U8X8_ST7565_NHD_C12832_4W_SW_SPI : public U8X8 {
  3771. public: U8X8_ST7565_NHD_C12832_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3772. u8x8_Setup(getU8x8(), u8x8_d_st7565_nhd_c12832, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3773. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  3774. }
  3775. };
  3776. #if defined U8G2_USE_HW_SPI
  3777. class U8X8_ST7565_NHD_C12832_4W_HW_SPI : public U8X8 {
  3778. public: U8X8_ST7565_NHD_C12832_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3779. u8x8_Setup(getU8x8(), u8x8_d_st7565_nhd_c12832, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  3780. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  3781. }
  3782. };
  3783. #endif
  3784. class U8X8_ST7565_NHD_C12832_3W_SW_SPI : public U8X8 {
  3785. public: U8X8_ST7565_NHD_C12832_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3786. u8x8_Setup(getU8x8(), u8x8_d_st7565_nhd_c12832, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3787. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  3788. }
  3789. };
  3790. class U8X8_ST7565_NHD_C12832_6800 : public U8X8 {
  3791. public: U8X8_ST7565_NHD_C12832_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3792. u8x8_Setup(getU8x8(), u8x8_d_st7565_nhd_c12832, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  3793. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3794. }
  3795. };
  3796. class U8X8_ST7565_NHD_C12832_8080 : public U8X8 {
  3797. public: U8X8_ST7565_NHD_C12832_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3798. u8x8_Setup(getU8x8(), u8x8_d_st7565_nhd_c12832, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  3799. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3800. }
  3801. };
  3802. class U8X8_UC1601_128X32_4W_SW_SPI : public U8X8 {
  3803. public: U8X8_UC1601_128X32_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3804. u8x8_Setup(getU8x8(), u8x8_d_uc1601_128x32, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3805. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  3806. }
  3807. };
  3808. #if defined U8G2_USE_HW_SPI
  3809. class U8X8_UC1601_128X32_4W_HW_SPI : public U8X8 {
  3810. public: U8X8_UC1601_128X32_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3811. u8x8_Setup(getU8x8(), u8x8_d_uc1601_128x32, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  3812. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  3813. }
  3814. };
  3815. #endif
  3816. class U8X8_UC1601_128X32_3W_SW_SPI : public U8X8 {
  3817. public: U8X8_UC1601_128X32_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3818. u8x8_Setup(getU8x8(), u8x8_d_uc1601_128x32, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3819. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  3820. }
  3821. };
  3822. class U8X8_UC1601_128X32_6800 : public U8X8 {
  3823. public: U8X8_UC1601_128X32_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3824. u8x8_Setup(getU8x8(), u8x8_d_uc1601_128x32, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  3825. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3826. }
  3827. };
  3828. class U8X8_UC1601_128X32_8080 : public U8X8 {
  3829. public: U8X8_UC1601_128X32_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3830. u8x8_Setup(getU8x8(), u8x8_d_uc1601_128x32, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  3831. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3832. }
  3833. };
  3834. class U8X8_UC1601_128X32_SW_I2C : public U8X8 {
  3835. public: U8X8_UC1601_128X32_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3836. u8x8_Setup(getU8x8(), u8x8_d_uc1601_128x32, u8x8_cad_uc16xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  3837. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  3838. }
  3839. };
  3840. #if defined U8G2_USE_HW_I2C
  3841. class U8X8_UC1601_128X32_HW_I2C : public U8X8 {
  3842. public: U8X8_UC1601_128X32_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  3843. u8x8_Setup(getU8x8(), u8x8_d_uc1601_128x32, u8x8_cad_uc16xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  3844. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  3845. }
  3846. };
  3847. #endif
  3848. class U8X8_UC1601_128X64_4W_SW_SPI : public U8X8 {
  3849. public: U8X8_UC1601_128X64_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3850. u8x8_Setup(getU8x8(), u8x8_d_uc1601_128x64, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3851. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  3852. }
  3853. };
  3854. #if defined U8G2_USE_HW_SPI
  3855. class U8X8_UC1601_128X64_4W_HW_SPI : public U8X8 {
  3856. public: U8X8_UC1601_128X64_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3857. u8x8_Setup(getU8x8(), u8x8_d_uc1601_128x64, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  3858. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  3859. }
  3860. };
  3861. #endif
  3862. class U8X8_UC1601_128X64_3W_SW_SPI : public U8X8 {
  3863. public: U8X8_UC1601_128X64_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3864. u8x8_Setup(getU8x8(), u8x8_d_uc1601_128x64, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3865. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  3866. }
  3867. };
  3868. class U8X8_UC1601_128X64_6800 : public U8X8 {
  3869. public: U8X8_UC1601_128X64_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3870. u8x8_Setup(getU8x8(), u8x8_d_uc1601_128x64, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  3871. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3872. }
  3873. };
  3874. class U8X8_UC1601_128X64_8080 : public U8X8 {
  3875. public: U8X8_UC1601_128X64_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3876. u8x8_Setup(getU8x8(), u8x8_d_uc1601_128x64, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  3877. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3878. }
  3879. };
  3880. class U8X8_UC1601_128X64_SW_I2C : public U8X8 {
  3881. public: U8X8_UC1601_128X64_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3882. u8x8_Setup(getU8x8(), u8x8_d_uc1601_128x64, u8x8_cad_uc16xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  3883. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  3884. }
  3885. };
  3886. #if defined U8G2_USE_HW_I2C
  3887. class U8X8_UC1601_128X64_HW_I2C : public U8X8 {
  3888. public: U8X8_UC1601_128X64_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  3889. u8x8_Setup(getU8x8(), u8x8_d_uc1601_128x64, u8x8_cad_uc16xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  3890. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  3891. }
  3892. };
  3893. #endif
  3894. class U8X8_ST7565_EA_DOGM132_4W_SW_SPI : public U8X8 {
  3895. public: U8X8_ST7565_EA_DOGM132_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3896. u8x8_Setup(getU8x8(), u8x8_d_st7565_ea_dogm132, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3897. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  3898. }
  3899. };
  3900. #if defined U8G2_USE_HW_SPI
  3901. class U8X8_ST7565_EA_DOGM132_4W_HW_SPI : public U8X8 {
  3902. public: U8X8_ST7565_EA_DOGM132_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3903. u8x8_Setup(getU8x8(), u8x8_d_st7565_ea_dogm132, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  3904. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  3905. }
  3906. };
  3907. #endif
  3908. class U8X8_ST7565_EA_DOGM132_3W_SW_SPI : public U8X8 {
  3909. public: U8X8_ST7565_EA_DOGM132_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3910. u8x8_Setup(getU8x8(), u8x8_d_st7565_ea_dogm132, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3911. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  3912. }
  3913. };
  3914. class U8X8_ST7565_EA_DOGM132_6800 : public U8X8 {
  3915. public: U8X8_ST7565_EA_DOGM132_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3916. u8x8_Setup(getU8x8(), u8x8_d_st7565_ea_dogm132, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  3917. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3918. }
  3919. };
  3920. class U8X8_ST7565_EA_DOGM132_8080 : public U8X8 {
  3921. public: U8X8_ST7565_EA_DOGM132_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3922. u8x8_Setup(getU8x8(), u8x8_d_st7565_ea_dogm132, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  3923. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3924. }
  3925. };
  3926. class U8X8_ST7567_PI_132X64_4W_SW_SPI : public U8X8 {
  3927. public: U8X8_ST7567_PI_132X64_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3928. u8x8_Setup(getU8x8(), u8x8_d_st7567_pi_132x64, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3929. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  3930. }
  3931. };
  3932. #if defined U8G2_USE_HW_SPI
  3933. class U8X8_ST7567_PI_132X64_4W_HW_SPI : public U8X8 {
  3934. public: U8X8_ST7567_PI_132X64_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3935. u8x8_Setup(getU8x8(), u8x8_d_st7567_pi_132x64, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  3936. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  3937. }
  3938. };
  3939. #endif
  3940. class U8X8_ST7567_PI_132X64_6800 : public U8X8 {
  3941. public: U8X8_ST7567_PI_132X64_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3942. u8x8_Setup(getU8x8(), u8x8_d_st7567_pi_132x64, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  3943. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3944. }
  3945. };
  3946. class U8X8_ST7567_PI_132X64_8080 : public U8X8 {
  3947. public: U8X8_ST7567_PI_132X64_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3948. u8x8_Setup(getU8x8(), u8x8_d_st7567_pi_132x64, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  3949. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3950. }
  3951. };
  3952. class U8X8_ST7567_JLX12864_4W_SW_SPI : public U8X8 {
  3953. public: U8X8_ST7567_JLX12864_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3954. u8x8_Setup(getU8x8(), u8x8_d_st7567_jlx12864, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3955. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  3956. }
  3957. };
  3958. #if defined U8G2_USE_HW_SPI
  3959. class U8X8_ST7567_JLX12864_4W_HW_SPI : public U8X8 {
  3960. public: U8X8_ST7567_JLX12864_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3961. u8x8_Setup(getU8x8(), u8x8_d_st7567_jlx12864, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  3962. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  3963. }
  3964. };
  3965. #endif
  3966. class U8X8_ST7567_JLX12864_6800 : public U8X8 {
  3967. public: U8X8_ST7567_JLX12864_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3968. u8x8_Setup(getU8x8(), u8x8_d_st7567_jlx12864, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  3969. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3970. }
  3971. };
  3972. class U8X8_ST7567_JLX12864_8080 : public U8X8 {
  3973. public: U8X8_ST7567_JLX12864_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3974. u8x8_Setup(getU8x8(), u8x8_d_st7567_jlx12864, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  3975. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3976. }
  3977. };
  3978. class U8X8_ST7567_ENH_DG128064_4W_SW_SPI : public U8X8 {
  3979. public: U8X8_ST7567_ENH_DG128064_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3980. u8x8_Setup(getU8x8(), u8x8_d_st7567_enh_dg128064, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  3981. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  3982. }
  3983. };
  3984. #if defined U8G2_USE_HW_SPI
  3985. class U8X8_ST7567_ENH_DG128064_4W_HW_SPI : public U8X8 {
  3986. public: U8X8_ST7567_ENH_DG128064_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3987. u8x8_Setup(getU8x8(), u8x8_d_st7567_enh_dg128064, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  3988. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  3989. }
  3990. };
  3991. #endif
  3992. class U8X8_ST7567_ENH_DG128064_6800 : public U8X8 {
  3993. public: U8X8_ST7567_ENH_DG128064_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  3994. u8x8_Setup(getU8x8(), u8x8_d_st7567_enh_dg128064, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  3995. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  3996. }
  3997. };
  3998. class U8X8_ST7567_ENH_DG128064_8080 : public U8X8 {
  3999. public: U8X8_ST7567_ENH_DG128064_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4000. u8x8_Setup(getU8x8(), u8x8_d_st7567_enh_dg128064, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  4001. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4002. }
  4003. };
  4004. class U8X8_ST7567_ENH_DG128064I_4W_SW_SPI : public U8X8 {
  4005. public: U8X8_ST7567_ENH_DG128064I_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4006. u8x8_Setup(getU8x8(), u8x8_d_st7567_enh_dg128064i, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4007. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  4008. }
  4009. };
  4010. #if defined U8G2_USE_HW_SPI
  4011. class U8X8_ST7567_ENH_DG128064I_4W_HW_SPI : public U8X8 {
  4012. public: U8X8_ST7567_ENH_DG128064I_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4013. u8x8_Setup(getU8x8(), u8x8_d_st7567_enh_dg128064i, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  4014. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  4015. }
  4016. };
  4017. #endif
  4018. class U8X8_ST7567_ENH_DG128064I_6800 : public U8X8 {
  4019. public: U8X8_ST7567_ENH_DG128064I_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4020. u8x8_Setup(getU8x8(), u8x8_d_st7567_enh_dg128064i, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  4021. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4022. }
  4023. };
  4024. class U8X8_ST7567_ENH_DG128064I_8080 : public U8X8 {
  4025. public: U8X8_ST7567_ENH_DG128064I_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4026. u8x8_Setup(getU8x8(), u8x8_d_st7567_enh_dg128064i, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  4027. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4028. }
  4029. };
  4030. class U8X8_ST7567_OS12864_4W_SW_SPI : public U8X8 {
  4031. public: U8X8_ST7567_OS12864_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4032. u8x8_Setup(getU8x8(), u8x8_d_st7567_os12864, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4033. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  4034. }
  4035. };
  4036. #if defined U8G2_USE_HW_SPI
  4037. class U8X8_ST7567_OS12864_4W_HW_SPI : public U8X8 {
  4038. public: U8X8_ST7567_OS12864_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4039. u8x8_Setup(getU8x8(), u8x8_d_st7567_os12864, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  4040. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  4041. }
  4042. };
  4043. #endif
  4044. class U8X8_ST7567_OS12864_6800 : public U8X8 {
  4045. public: U8X8_ST7567_OS12864_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4046. u8x8_Setup(getU8x8(), u8x8_d_st7567_os12864, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  4047. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4048. }
  4049. };
  4050. class U8X8_ST7567_OS12864_8080 : public U8X8 {
  4051. public: U8X8_ST7567_OS12864_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4052. u8x8_Setup(getU8x8(), u8x8_d_st7567_os12864, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  4053. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4054. }
  4055. };
  4056. class U8X8_ST7567_64X32_4W_SW_SPI : public U8X8 {
  4057. public: U8X8_ST7567_64X32_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4058. u8x8_Setup(getU8x8(), u8x8_d_st7567_64x32, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4059. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  4060. }
  4061. };
  4062. #if defined U8G2_USE_HW_SPI
  4063. class U8X8_ST7567_64X32_4W_HW_SPI : public U8X8 {
  4064. public: U8X8_ST7567_64X32_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4065. u8x8_Setup(getU8x8(), u8x8_d_st7567_64x32, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  4066. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  4067. }
  4068. };
  4069. #endif
  4070. class U8X8_ST7567_64X32_6800 : public U8X8 {
  4071. public: U8X8_ST7567_64X32_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4072. u8x8_Setup(getU8x8(), u8x8_d_st7567_64x32, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  4073. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4074. }
  4075. };
  4076. class U8X8_ST7567_64X32_8080 : public U8X8 {
  4077. public: U8X8_ST7567_64X32_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4078. u8x8_Setup(getU8x8(), u8x8_d_st7567_64x32, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  4079. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4080. }
  4081. };
  4082. class U8X8_ST7567_HEM6432_4W_SW_SPI : public U8X8 {
  4083. public: U8X8_ST7567_HEM6432_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4084. u8x8_Setup(getU8x8(), u8x8_d_st7567_hem6432, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4085. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  4086. }
  4087. };
  4088. #if defined U8G2_USE_HW_SPI
  4089. class U8X8_ST7567_HEM6432_4W_HW_SPI : public U8X8 {
  4090. public: U8X8_ST7567_HEM6432_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4091. u8x8_Setup(getU8x8(), u8x8_d_st7567_hem6432, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  4092. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  4093. }
  4094. };
  4095. #endif
  4096. class U8X8_ST7567_HEM6432_6800 : public U8X8 {
  4097. public: U8X8_ST7567_HEM6432_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4098. u8x8_Setup(getU8x8(), u8x8_d_st7567_hem6432, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  4099. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4100. }
  4101. };
  4102. class U8X8_ST7567_HEM6432_8080 : public U8X8 {
  4103. public: U8X8_ST7567_HEM6432_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4104. u8x8_Setup(getU8x8(), u8x8_d_st7567_hem6432, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  4105. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4106. }
  4107. };
  4108. class U8X8_ST7567_64X32_SW_I2C : public U8X8 {
  4109. public: U8X8_ST7567_64X32_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4110. u8x8_Setup(getU8x8(), u8x8_d_st7567_64x32, u8x8_cad_ssd13xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  4111. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  4112. }
  4113. };
  4114. #if defined U8G2_USE_HW_I2C
  4115. class U8X8_ST7567_64X32_HW_I2C : public U8X8 {
  4116. public: U8X8_ST7567_64X32_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  4117. u8x8_Setup(getU8x8(), u8x8_d_st7567_64x32, u8x8_cad_ssd13xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  4118. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  4119. }
  4120. };
  4121. #endif
  4122. class U8X8_ST7567_HEM6432_SW_I2C : public U8X8 {
  4123. public: U8X8_ST7567_HEM6432_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4124. u8x8_Setup(getU8x8(), u8x8_d_st7567_hem6432, u8x8_cad_ssd13xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  4125. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  4126. }
  4127. };
  4128. #if defined U8G2_USE_HW_I2C
  4129. class U8X8_ST7567_HEM6432_HW_I2C : public U8X8 {
  4130. public: U8X8_ST7567_HEM6432_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  4131. u8x8_Setup(getU8x8(), u8x8_d_st7567_hem6432, u8x8_cad_ssd13xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  4132. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  4133. }
  4134. };
  4135. #endif
  4136. class U8X8_ST7571_128X128_4W_SW_SPI : public U8X8 {
  4137. public: U8X8_ST7571_128X128_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4138. u8x8_Setup(getU8x8(), u8x8_d_st7571_128x128, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4139. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  4140. }
  4141. };
  4142. #if defined U8G2_USE_HW_SPI
  4143. class U8X8_ST7571_128X128_4W_HW_SPI : public U8X8 {
  4144. public: U8X8_ST7571_128X128_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4145. u8x8_Setup(getU8x8(), u8x8_d_st7571_128x128, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  4146. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  4147. }
  4148. };
  4149. #endif
  4150. class U8X8_ST7571_128X128_6800 : public U8X8 {
  4151. public: U8X8_ST7571_128X128_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4152. u8x8_Setup(getU8x8(), u8x8_d_st7571_128x128, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  4153. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4154. }
  4155. };
  4156. class U8X8_ST7571_128X128_8080 : public U8X8 {
  4157. public: U8X8_ST7571_128X128_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4158. u8x8_Setup(getU8x8(), u8x8_d_st7571_128x128, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  4159. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4160. }
  4161. };
  4162. class U8X8_ST7571_128X128_SW_I2C : public U8X8 {
  4163. public: U8X8_ST7571_128X128_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4164. u8x8_Setup(getU8x8(), u8x8_d_st7571_128x128, u8x8_cad_ssd13xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  4165. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  4166. }
  4167. };
  4168. #if defined U8G2_USE_HW_I2C
  4169. class U8X8_ST7571_128X128_HW_I2C : public U8X8 {
  4170. public: U8X8_ST7571_128X128_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  4171. u8x8_Setup(getU8x8(), u8x8_d_st7571_128x128, u8x8_cad_ssd13xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  4172. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  4173. }
  4174. };
  4175. #endif
  4176. class U8X8_ST7571_128X96_4W_SW_SPI : public U8X8 {
  4177. public: U8X8_ST7571_128X96_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4178. u8x8_Setup(getU8x8(), u8x8_d_st7571_128x96, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4179. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  4180. }
  4181. };
  4182. #if defined U8G2_USE_HW_SPI
  4183. class U8X8_ST7571_128X96_4W_HW_SPI : public U8X8 {
  4184. public: U8X8_ST7571_128X96_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4185. u8x8_Setup(getU8x8(), u8x8_d_st7571_128x96, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  4186. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  4187. }
  4188. };
  4189. #endif
  4190. class U8X8_ST7571_128X96_6800 : public U8X8 {
  4191. public: U8X8_ST7571_128X96_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4192. u8x8_Setup(getU8x8(), u8x8_d_st7571_128x96, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  4193. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4194. }
  4195. };
  4196. class U8X8_ST7571_128X96_8080 : public U8X8 {
  4197. public: U8X8_ST7571_128X96_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4198. u8x8_Setup(getU8x8(), u8x8_d_st7571_128x96, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  4199. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4200. }
  4201. };
  4202. class U8X8_ST7571_128X96_SW_I2C : public U8X8 {
  4203. public: U8X8_ST7571_128X96_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4204. u8x8_Setup(getU8x8(), u8x8_d_st7571_128x96, u8x8_cad_ssd13xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  4205. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  4206. }
  4207. };
  4208. #if defined U8G2_USE_HW_I2C
  4209. class U8X8_ST7571_128X96_HW_I2C : public U8X8 {
  4210. public: U8X8_ST7571_128X96_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  4211. u8x8_Setup(getU8x8(), u8x8_d_st7571_128x96, u8x8_cad_ssd13xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  4212. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  4213. }
  4214. };
  4215. #endif
  4216. class U8X8_ST7586S_S028HN118A_4W_SW_SPI : public U8X8 {
  4217. public: U8X8_ST7586S_S028HN118A_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4218. u8x8_Setup(getU8x8(), u8x8_d_st7586s_s028hn118a, u8x8_cad_011, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4219. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  4220. }
  4221. };
  4222. #if defined U8G2_USE_HW_SPI
  4223. class U8X8_ST7586S_S028HN118A_4W_HW_SPI : public U8X8 {
  4224. public: U8X8_ST7586S_S028HN118A_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4225. u8x8_Setup(getU8x8(), u8x8_d_st7586s_s028hn118a, u8x8_cad_011, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  4226. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  4227. }
  4228. };
  4229. #endif
  4230. class U8X8_ST7586S_ERC240160_4W_SW_SPI : public U8X8 {
  4231. public: U8X8_ST7586S_ERC240160_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4232. u8x8_Setup(getU8x8(), u8x8_d_st7586s_erc240160, u8x8_cad_011, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4233. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  4234. }
  4235. };
  4236. #if defined U8G2_USE_HW_SPI
  4237. class U8X8_ST7586S_ERC240160_4W_HW_SPI : public U8X8 {
  4238. public: U8X8_ST7586S_ERC240160_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4239. u8x8_Setup(getU8x8(), u8x8_d_st7586s_erc240160, u8x8_cad_011, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  4240. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  4241. }
  4242. };
  4243. #endif
  4244. class U8X8_ST7586S_ERC240160_3W_SW_SPI : public U8X8 {
  4245. public: U8X8_ST7586S_ERC240160_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4246. u8x8_Setup(getU8x8(), u8x8_d_st7586s_erc240160, u8x8_cad_011, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4247. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  4248. }
  4249. };
  4250. class U8X8_ST7586S_ERC240160_6800 : public U8X8 {
  4251. public: U8X8_ST7586S_ERC240160_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4252. u8x8_Setup(getU8x8(), u8x8_d_st7586s_erc240160, u8x8_cad_011, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  4253. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4254. }
  4255. };
  4256. class U8X8_ST7586S_ERC240160_8080 : public U8X8 {
  4257. public: U8X8_ST7586S_ERC240160_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4258. u8x8_Setup(getU8x8(), u8x8_d_st7586s_erc240160, u8x8_cad_011, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  4259. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4260. }
  4261. };
  4262. class U8X8_ST7586S_YMC240160_4W_SW_SPI : public U8X8 {
  4263. public: U8X8_ST7586S_YMC240160_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4264. u8x8_Setup(getU8x8(), u8x8_d_st7586s_ymc240160, u8x8_cad_011, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4265. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  4266. }
  4267. };
  4268. #if defined U8G2_USE_HW_SPI
  4269. class U8X8_ST7586S_YMC240160_4W_HW_SPI : public U8X8 {
  4270. public: U8X8_ST7586S_YMC240160_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4271. u8x8_Setup(getU8x8(), u8x8_d_st7586s_ymc240160, u8x8_cad_011, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  4272. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  4273. }
  4274. };
  4275. #endif
  4276. class U8X8_ST7586S_YMC240160_3W_SW_SPI : public U8X8 {
  4277. public: U8X8_ST7586S_YMC240160_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4278. u8x8_Setup(getU8x8(), u8x8_d_st7586s_ymc240160, u8x8_cad_011, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4279. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  4280. }
  4281. };
  4282. class U8X8_ST7586S_YMC240160_6800 : public U8X8 {
  4283. public: U8X8_ST7586S_YMC240160_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4284. u8x8_Setup(getU8x8(), u8x8_d_st7586s_ymc240160, u8x8_cad_011, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  4285. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4286. }
  4287. };
  4288. class U8X8_ST7586S_YMC240160_8080 : public U8X8 {
  4289. public: U8X8_ST7586S_YMC240160_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4290. u8x8_Setup(getU8x8(), u8x8_d_st7586s_ymc240160, u8x8_cad_011, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  4291. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4292. }
  4293. };
  4294. class U8X8_ST7588_JLX12864_4W_SW_SPI : public U8X8 {
  4295. public: U8X8_ST7588_JLX12864_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4296. u8x8_Setup(getU8x8(), u8x8_d_st7588_jlx12864, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4297. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  4298. }
  4299. };
  4300. #if defined U8G2_USE_HW_SPI
  4301. class U8X8_ST7588_JLX12864_4W_HW_SPI : public U8X8 {
  4302. public: U8X8_ST7588_JLX12864_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4303. u8x8_Setup(getU8x8(), u8x8_d_st7588_jlx12864, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  4304. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  4305. }
  4306. };
  4307. #endif
  4308. class U8X8_ST7588_JLX12864_3W_SW_SPI : public U8X8 {
  4309. public: U8X8_ST7588_JLX12864_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4310. u8x8_Setup(getU8x8(), u8x8_d_st7588_jlx12864, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4311. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  4312. }
  4313. };
  4314. class U8X8_ST7588_JLX12864_6800 : public U8X8 {
  4315. public: U8X8_ST7588_JLX12864_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4316. u8x8_Setup(getU8x8(), u8x8_d_st7588_jlx12864, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  4317. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4318. }
  4319. };
  4320. class U8X8_ST7588_JLX12864_8080 : public U8X8 {
  4321. public: U8X8_ST7588_JLX12864_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4322. u8x8_Setup(getU8x8(), u8x8_d_st7588_jlx12864, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  4323. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4324. }
  4325. };
  4326. class U8X8_ST7588_JLX12864_SW_I2C : public U8X8 {
  4327. public: U8X8_ST7588_JLX12864_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4328. u8x8_Setup(getU8x8(), u8x8_d_st7588_jlx12864, u8x8_cad_ssd13xx_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  4329. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  4330. }
  4331. };
  4332. #if defined U8G2_USE_HW_I2C
  4333. class U8X8_ST7588_JLX12864_HW_I2C : public U8X8 {
  4334. public: U8X8_ST7588_JLX12864_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  4335. u8x8_Setup(getU8x8(), u8x8_d_st7588_jlx12864, u8x8_cad_ssd13xx_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  4336. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  4337. }
  4338. };
  4339. #endif
  4340. class U8X8_ST75256_JLX256128_4W_SW_SPI : public U8X8 {
  4341. public: U8X8_ST75256_JLX256128_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4342. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx256128, u8x8_cad_011, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4343. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  4344. }
  4345. };
  4346. #if defined U8G2_USE_HW_SPI
  4347. class U8X8_ST75256_JLX256128_4W_HW_SPI : public U8X8 {
  4348. public: U8X8_ST75256_JLX256128_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4349. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx256128, u8x8_cad_011, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  4350. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  4351. }
  4352. };
  4353. #endif
  4354. class U8X8_ST75256_JLX256128_3W_SW_SPI : public U8X8 {
  4355. public: U8X8_ST75256_JLX256128_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4356. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx256128, u8x8_cad_011, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4357. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  4358. }
  4359. };
  4360. class U8X8_ST75256_JLX256128_6800 : public U8X8 {
  4361. public: U8X8_ST75256_JLX256128_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4362. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx256128, u8x8_cad_011, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  4363. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4364. }
  4365. };
  4366. class U8X8_ST75256_JLX256128_8080 : public U8X8 {
  4367. public: U8X8_ST75256_JLX256128_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4368. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx256128, u8x8_cad_011, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  4369. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4370. }
  4371. };
  4372. class U8X8_ST75256_WO256X128_4W_SW_SPI : public U8X8 {
  4373. public: U8X8_ST75256_WO256X128_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4374. u8x8_Setup(getU8x8(), u8x8_d_st75256_wo256x128, u8x8_cad_011, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4375. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  4376. }
  4377. };
  4378. #if defined U8G2_USE_HW_SPI
  4379. class U8X8_ST75256_WO256X128_4W_HW_SPI : public U8X8 {
  4380. public: U8X8_ST75256_WO256X128_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4381. u8x8_Setup(getU8x8(), u8x8_d_st75256_wo256x128, u8x8_cad_011, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  4382. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  4383. }
  4384. };
  4385. #endif
  4386. class U8X8_ST75256_WO256X128_3W_SW_SPI : public U8X8 {
  4387. public: U8X8_ST75256_WO256X128_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4388. u8x8_Setup(getU8x8(), u8x8_d_st75256_wo256x128, u8x8_cad_011, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4389. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  4390. }
  4391. };
  4392. class U8X8_ST75256_WO256X128_6800 : public U8X8 {
  4393. public: U8X8_ST75256_WO256X128_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4394. u8x8_Setup(getU8x8(), u8x8_d_st75256_wo256x128, u8x8_cad_011, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  4395. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4396. }
  4397. };
  4398. class U8X8_ST75256_WO256X128_8080 : public U8X8 {
  4399. public: U8X8_ST75256_WO256X128_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4400. u8x8_Setup(getU8x8(), u8x8_d_st75256_wo256x128, u8x8_cad_011, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  4401. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4402. }
  4403. };
  4404. class U8X8_ST75256_JLX256128_SW_I2C : public U8X8 {
  4405. public: U8X8_ST75256_JLX256128_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4406. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx256128, u8x8_cad_st75256_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  4407. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  4408. }
  4409. };
  4410. #if defined U8G2_USE_HW_I2C
  4411. class U8X8_ST75256_JLX256128_HW_I2C : public U8X8 {
  4412. public: U8X8_ST75256_JLX256128_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  4413. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx256128, u8x8_cad_st75256_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  4414. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  4415. }
  4416. };
  4417. #endif
  4418. class U8X8_ST75256_WO256X128_SW_I2C : public U8X8 {
  4419. public: U8X8_ST75256_WO256X128_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4420. u8x8_Setup(getU8x8(), u8x8_d_st75256_wo256x128, u8x8_cad_st75256_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  4421. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  4422. }
  4423. };
  4424. #if defined U8G2_USE_HW_I2C
  4425. class U8X8_ST75256_WO256X128_HW_I2C : public U8X8 {
  4426. public: U8X8_ST75256_WO256X128_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  4427. u8x8_Setup(getU8x8(), u8x8_d_st75256_wo256x128, u8x8_cad_st75256_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  4428. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  4429. }
  4430. };
  4431. #endif
  4432. class U8X8_ST75256_JLX256160_4W_SW_SPI : public U8X8 {
  4433. public: U8X8_ST75256_JLX256160_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4434. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx256160, u8x8_cad_011, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4435. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  4436. }
  4437. };
  4438. #if defined U8G2_USE_HW_SPI
  4439. class U8X8_ST75256_JLX256160_4W_HW_SPI : public U8X8 {
  4440. public: U8X8_ST75256_JLX256160_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4441. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx256160, u8x8_cad_011, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  4442. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  4443. }
  4444. };
  4445. #endif
  4446. class U8X8_ST75256_JLX256160_3W_SW_SPI : public U8X8 {
  4447. public: U8X8_ST75256_JLX256160_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4448. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx256160, u8x8_cad_011, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4449. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  4450. }
  4451. };
  4452. class U8X8_ST75256_JLX256160_6800 : public U8X8 {
  4453. public: U8X8_ST75256_JLX256160_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4454. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx256160, u8x8_cad_011, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  4455. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4456. }
  4457. };
  4458. class U8X8_ST75256_JLX256160_8080 : public U8X8 {
  4459. public: U8X8_ST75256_JLX256160_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4460. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx256160, u8x8_cad_011, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  4461. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4462. }
  4463. };
  4464. class U8X8_ST75256_JLX256160M_4W_SW_SPI : public U8X8 {
  4465. public: U8X8_ST75256_JLX256160M_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4466. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx256160m, u8x8_cad_011, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4467. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  4468. }
  4469. };
  4470. #if defined U8G2_USE_HW_SPI
  4471. class U8X8_ST75256_JLX256160M_4W_HW_SPI : public U8X8 {
  4472. public: U8X8_ST75256_JLX256160M_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4473. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx256160m, u8x8_cad_011, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  4474. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  4475. }
  4476. };
  4477. #endif
  4478. class U8X8_ST75256_JLX256160M_3W_SW_SPI : public U8X8 {
  4479. public: U8X8_ST75256_JLX256160M_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4480. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx256160m, u8x8_cad_011, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4481. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  4482. }
  4483. };
  4484. class U8X8_ST75256_JLX256160M_6800 : public U8X8 {
  4485. public: U8X8_ST75256_JLX256160M_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4486. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx256160m, u8x8_cad_011, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  4487. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4488. }
  4489. };
  4490. class U8X8_ST75256_JLX256160M_8080 : public U8X8 {
  4491. public: U8X8_ST75256_JLX256160M_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4492. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx256160m, u8x8_cad_011, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  4493. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4494. }
  4495. };
  4496. class U8X8_ST75256_JLX256160_ALT_4W_SW_SPI : public U8X8 {
  4497. public: U8X8_ST75256_JLX256160_ALT_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4498. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx256160_alt, u8x8_cad_011, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4499. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  4500. }
  4501. };
  4502. #if defined U8G2_USE_HW_SPI
  4503. class U8X8_ST75256_JLX256160_ALT_4W_HW_SPI : public U8X8 {
  4504. public: U8X8_ST75256_JLX256160_ALT_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4505. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx256160_alt, u8x8_cad_011, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  4506. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  4507. }
  4508. };
  4509. #endif
  4510. class U8X8_ST75256_JLX256160_ALT_3W_SW_SPI : public U8X8 {
  4511. public: U8X8_ST75256_JLX256160_ALT_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4512. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx256160_alt, u8x8_cad_011, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4513. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  4514. }
  4515. };
  4516. class U8X8_ST75256_JLX256160_ALT_6800 : public U8X8 {
  4517. public: U8X8_ST75256_JLX256160_ALT_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4518. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx256160_alt, u8x8_cad_011, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  4519. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4520. }
  4521. };
  4522. class U8X8_ST75256_JLX256160_ALT_8080 : public U8X8 {
  4523. public: U8X8_ST75256_JLX256160_ALT_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4524. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx256160_alt, u8x8_cad_011, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  4525. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4526. }
  4527. };
  4528. class U8X8_ST75256_JLX256160_SW_I2C : public U8X8 {
  4529. public: U8X8_ST75256_JLX256160_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4530. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx256160, u8x8_cad_st75256_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  4531. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  4532. }
  4533. };
  4534. #if defined U8G2_USE_HW_I2C
  4535. class U8X8_ST75256_JLX256160_HW_I2C : public U8X8 {
  4536. public: U8X8_ST75256_JLX256160_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  4537. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx256160, u8x8_cad_st75256_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  4538. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  4539. }
  4540. };
  4541. #endif
  4542. class U8X8_ST75256_JLX256160M_SW_I2C : public U8X8 {
  4543. public: U8X8_ST75256_JLX256160M_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4544. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx256160m, u8x8_cad_st75256_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  4545. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  4546. }
  4547. };
  4548. #if defined U8G2_USE_HW_I2C
  4549. class U8X8_ST75256_JLX256160M_HW_I2C : public U8X8 {
  4550. public: U8X8_ST75256_JLX256160M_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  4551. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx256160m, u8x8_cad_st75256_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  4552. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  4553. }
  4554. };
  4555. #endif
  4556. class U8X8_ST75256_JLX256160_ALT_SW_I2C : public U8X8 {
  4557. public: U8X8_ST75256_JLX256160_ALT_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4558. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx256160_alt, u8x8_cad_st75256_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  4559. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  4560. }
  4561. };
  4562. #if defined U8G2_USE_HW_I2C
  4563. class U8X8_ST75256_JLX256160_ALT_HW_I2C : public U8X8 {
  4564. public: U8X8_ST75256_JLX256160_ALT_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  4565. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx256160_alt, u8x8_cad_st75256_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  4566. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  4567. }
  4568. };
  4569. #endif
  4570. class U8X8_ST75256_JLX240160_4W_SW_SPI : public U8X8 {
  4571. public: U8X8_ST75256_JLX240160_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4572. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx240160, u8x8_cad_011, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4573. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  4574. }
  4575. };
  4576. #if defined U8G2_USE_HW_SPI
  4577. class U8X8_ST75256_JLX240160_4W_HW_SPI : public U8X8 {
  4578. public: U8X8_ST75256_JLX240160_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4579. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx240160, u8x8_cad_011, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  4580. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  4581. }
  4582. };
  4583. #endif
  4584. class U8X8_ST75256_JLX240160_3W_SW_SPI : public U8X8 {
  4585. public: U8X8_ST75256_JLX240160_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4586. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx240160, u8x8_cad_011, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4587. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  4588. }
  4589. };
  4590. class U8X8_ST75256_JLX240160_6800 : public U8X8 {
  4591. public: U8X8_ST75256_JLX240160_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4592. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx240160, u8x8_cad_011, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  4593. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4594. }
  4595. };
  4596. class U8X8_ST75256_JLX240160_8080 : public U8X8 {
  4597. public: U8X8_ST75256_JLX240160_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4598. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx240160, u8x8_cad_011, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  4599. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4600. }
  4601. };
  4602. class U8X8_ST75256_JLX240160_SW_I2C : public U8X8 {
  4603. public: U8X8_ST75256_JLX240160_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4604. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx240160, u8x8_cad_st75256_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  4605. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  4606. }
  4607. };
  4608. #if defined U8G2_USE_HW_I2C
  4609. class U8X8_ST75256_JLX240160_HW_I2C : public U8X8 {
  4610. public: U8X8_ST75256_JLX240160_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  4611. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx240160, u8x8_cad_st75256_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  4612. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  4613. }
  4614. };
  4615. #endif
  4616. class U8X8_ST75256_JLX25664_4W_SW_SPI : public U8X8 {
  4617. public: U8X8_ST75256_JLX25664_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4618. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx25664, u8x8_cad_011, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4619. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  4620. }
  4621. };
  4622. #if defined U8G2_USE_HW_SPI
  4623. class U8X8_ST75256_JLX25664_4W_HW_SPI : public U8X8 {
  4624. public: U8X8_ST75256_JLX25664_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4625. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx25664, u8x8_cad_011, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  4626. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  4627. }
  4628. };
  4629. #endif
  4630. class U8X8_ST75256_JLX25664_3W_SW_SPI : public U8X8 {
  4631. public: U8X8_ST75256_JLX25664_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4632. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx25664, u8x8_cad_011, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4633. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  4634. }
  4635. };
  4636. class U8X8_ST75256_JLX25664_6800 : public U8X8 {
  4637. public: U8X8_ST75256_JLX25664_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4638. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx25664, u8x8_cad_011, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  4639. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4640. }
  4641. };
  4642. class U8X8_ST75256_JLX25664_8080 : public U8X8 {
  4643. public: U8X8_ST75256_JLX25664_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4644. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx25664, u8x8_cad_011, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  4645. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4646. }
  4647. };
  4648. class U8X8_ST75256_JLX25664_SW_I2C : public U8X8 {
  4649. public: U8X8_ST75256_JLX25664_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4650. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx25664, u8x8_cad_st75256_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  4651. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  4652. }
  4653. };
  4654. #if defined U8G2_USE_HW_I2C
  4655. class U8X8_ST75256_JLX25664_HW_I2C : public U8X8 {
  4656. public: U8X8_ST75256_JLX25664_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  4657. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx25664, u8x8_cad_st75256_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  4658. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  4659. }
  4660. };
  4661. #endif
  4662. class U8X8_ST75256_JLX172104_4W_SW_SPI : public U8X8 {
  4663. public: U8X8_ST75256_JLX172104_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4664. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx172104, u8x8_cad_011, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4665. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  4666. }
  4667. };
  4668. #if defined U8G2_USE_HW_SPI
  4669. class U8X8_ST75256_JLX172104_4W_HW_SPI : public U8X8 {
  4670. public: U8X8_ST75256_JLX172104_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4671. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx172104, u8x8_cad_011, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  4672. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  4673. }
  4674. };
  4675. #endif
  4676. class U8X8_ST75256_JLX172104_3W_SW_SPI : public U8X8 {
  4677. public: U8X8_ST75256_JLX172104_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4678. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx172104, u8x8_cad_011, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4679. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  4680. }
  4681. };
  4682. class U8X8_ST75256_JLX172104_6800 : public U8X8 {
  4683. public: U8X8_ST75256_JLX172104_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4684. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx172104, u8x8_cad_011, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  4685. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4686. }
  4687. };
  4688. class U8X8_ST75256_JLX172104_8080 : public U8X8 {
  4689. public: U8X8_ST75256_JLX172104_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4690. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx172104, u8x8_cad_011, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  4691. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4692. }
  4693. };
  4694. class U8X8_ST75256_JLX172104_SW_I2C : public U8X8 {
  4695. public: U8X8_ST75256_JLX172104_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4696. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx172104, u8x8_cad_st75256_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  4697. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  4698. }
  4699. };
  4700. #if defined U8G2_USE_HW_I2C
  4701. class U8X8_ST75256_JLX172104_HW_I2C : public U8X8 {
  4702. public: U8X8_ST75256_JLX172104_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  4703. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx172104, u8x8_cad_st75256_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  4704. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  4705. }
  4706. };
  4707. #endif
  4708. class U8X8_ST75256_JLX19296_4W_SW_SPI : public U8X8 {
  4709. public: U8X8_ST75256_JLX19296_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4710. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx19296, u8x8_cad_011, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4711. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  4712. }
  4713. };
  4714. #if defined U8G2_USE_HW_SPI
  4715. class U8X8_ST75256_JLX19296_4W_HW_SPI : public U8X8 {
  4716. public: U8X8_ST75256_JLX19296_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4717. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx19296, u8x8_cad_011, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  4718. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  4719. }
  4720. };
  4721. #endif
  4722. class U8X8_ST75256_JLX19296_3W_SW_SPI : public U8X8 {
  4723. public: U8X8_ST75256_JLX19296_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4724. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx19296, u8x8_cad_011, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4725. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  4726. }
  4727. };
  4728. class U8X8_ST75256_JLX19296_6800 : public U8X8 {
  4729. public: U8X8_ST75256_JLX19296_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4730. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx19296, u8x8_cad_011, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  4731. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4732. }
  4733. };
  4734. class U8X8_ST75256_JLX19296_8080 : public U8X8 {
  4735. public: U8X8_ST75256_JLX19296_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4736. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx19296, u8x8_cad_011, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  4737. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4738. }
  4739. };
  4740. class U8X8_ST75256_JLX19296_SW_I2C : public U8X8 {
  4741. public: U8X8_ST75256_JLX19296_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4742. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx19296, u8x8_cad_st75256_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  4743. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  4744. }
  4745. };
  4746. #if defined U8G2_USE_HW_I2C
  4747. class U8X8_ST75256_JLX19296_HW_I2C : public U8X8 {
  4748. public: U8X8_ST75256_JLX19296_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  4749. u8x8_Setup(getU8x8(), u8x8_d_st75256_jlx19296, u8x8_cad_st75256_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  4750. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  4751. }
  4752. };
  4753. #endif
  4754. class U8X8_ST75320_JLX320240_4W_SW_SPI : public U8X8 {
  4755. public: U8X8_ST75320_JLX320240_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4756. u8x8_Setup(getU8x8(), u8x8_d_st75320_jlx320240, u8x8_cad_011, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4757. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  4758. }
  4759. };
  4760. #if defined U8G2_USE_HW_SPI
  4761. class U8X8_ST75320_JLX320240_4W_HW_SPI : public U8X8 {
  4762. public: U8X8_ST75320_JLX320240_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4763. u8x8_Setup(getU8x8(), u8x8_d_st75320_jlx320240, u8x8_cad_011, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  4764. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  4765. }
  4766. };
  4767. #endif
  4768. class U8X8_ST75320_JLX320240_3W_SW_SPI : public U8X8 {
  4769. public: U8X8_ST75320_JLX320240_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4770. u8x8_Setup(getU8x8(), u8x8_d_st75320_jlx320240, u8x8_cad_011, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4771. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  4772. }
  4773. };
  4774. class U8X8_ST75320_JLX320240_6800 : public U8X8 {
  4775. public: U8X8_ST75320_JLX320240_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4776. u8x8_Setup(getU8x8(), u8x8_d_st75320_jlx320240, u8x8_cad_011, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  4777. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4778. }
  4779. };
  4780. class U8X8_ST75320_JLX320240_8080 : public U8X8 {
  4781. public: U8X8_ST75320_JLX320240_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4782. u8x8_Setup(getU8x8(), u8x8_d_st75320_jlx320240, u8x8_cad_011, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  4783. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4784. }
  4785. };
  4786. class U8X8_ST75320_JLX320240_SW_I2C : public U8X8 {
  4787. public: U8X8_ST75320_JLX320240_SW_I2C(uint8_t clock, uint8_t data, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4788. u8x8_Setup(getU8x8(), u8x8_d_st75320_jlx320240, u8x8_cad_st75256_i2c, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
  4789. u8x8_SetPin_SW_I2C(getU8x8(), clock, data, reset);
  4790. }
  4791. };
  4792. #if defined U8G2_USE_HW_I2C
  4793. class U8X8_ST75320_JLX320240_HW_I2C : public U8X8 {
  4794. public: U8X8_ST75320_JLX320240_HW_I2C(uint8_t reset = U8X8_PIN_NONE, uint8_t clock = U8X8_PIN_NONE, uint8_t data = U8X8_PIN_NONE) : U8X8() {
  4795. u8x8_Setup(getU8x8(), u8x8_d_st75320_jlx320240, u8x8_cad_st75256_i2c, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
  4796. u8x8_SetPin_HW_I2C(getU8x8(), reset, clock, data);
  4797. }
  4798. };
  4799. #endif
  4800. class U8X8_NT7534_TG12864R_4W_SW_SPI : public U8X8 {
  4801. public: U8X8_NT7534_TG12864R_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4802. u8x8_Setup(getU8x8(), u8x8_d_nt7534_tg12864r, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4803. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  4804. }
  4805. };
  4806. #if defined U8G2_USE_HW_SPI
  4807. class U8X8_NT7534_TG12864R_4W_HW_SPI : public U8X8 {
  4808. public: U8X8_NT7534_TG12864R_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4809. u8x8_Setup(getU8x8(), u8x8_d_nt7534_tg12864r, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  4810. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  4811. }
  4812. };
  4813. #endif
  4814. class U8X8_NT7534_TG12864R_6800 : public U8X8 {
  4815. public: U8X8_NT7534_TG12864R_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4816. u8x8_Setup(getU8x8(), u8x8_d_nt7534_tg12864r, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  4817. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4818. }
  4819. };
  4820. class U8X8_NT7534_TG12864R_8080 : public U8X8 {
  4821. public: U8X8_NT7534_TG12864R_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4822. u8x8_Setup(getU8x8(), u8x8_d_nt7534_tg12864r, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  4823. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4824. }
  4825. };
  4826. class U8X8_IST3020_ERC19264_4W_SW_SPI : public U8X8 {
  4827. public: U8X8_IST3020_ERC19264_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4828. u8x8_Setup(getU8x8(), u8x8_d_ist3020_erc19264, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4829. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  4830. }
  4831. };
  4832. #if defined U8G2_USE_HW_SPI
  4833. class U8X8_IST3020_ERC19264_4W_HW_SPI : public U8X8 {
  4834. public: U8X8_IST3020_ERC19264_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4835. u8x8_Setup(getU8x8(), u8x8_d_ist3020_erc19264, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  4836. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  4837. }
  4838. };
  4839. #endif
  4840. class U8X8_IST3020_ERC19264_6800 : public U8X8 {
  4841. public: U8X8_IST3020_ERC19264_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4842. u8x8_Setup(getU8x8(), u8x8_d_ist3020_erc19264, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  4843. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4844. }
  4845. };
  4846. class U8X8_IST3020_ERC19264_8080 : public U8X8 {
  4847. public: U8X8_IST3020_ERC19264_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4848. u8x8_Setup(getU8x8(), u8x8_d_ist3020_erc19264, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  4849. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4850. }
  4851. };
  4852. class U8X8_IST7920_128X128_4W_SW_SPI : public U8X8 {
  4853. public: U8X8_IST7920_128X128_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4854. u8x8_Setup(getU8x8(), u8x8_d_ist7920_128x128, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4855. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  4856. }
  4857. };
  4858. #if defined U8G2_USE_HW_SPI
  4859. class U8X8_IST7920_128X128_4W_HW_SPI : public U8X8 {
  4860. public: U8X8_IST7920_128X128_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4861. u8x8_Setup(getU8x8(), u8x8_d_ist7920_128x128, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  4862. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  4863. }
  4864. };
  4865. #endif
  4866. class U8X8_IST7920_128X128_6800 : public U8X8 {
  4867. public: U8X8_IST7920_128X128_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4868. u8x8_Setup(getU8x8(), u8x8_d_ist7920_128x128, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  4869. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4870. }
  4871. };
  4872. class U8X8_IST7920_128X128_8080 : public U8X8 {
  4873. public: U8X8_IST7920_128X128_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4874. u8x8_Setup(getU8x8(), u8x8_d_ist7920_128x128, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  4875. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4876. }
  4877. };
  4878. class U8X8_SBN1661_122X32 : public U8X8 {
  4879. public: U8X8_SBN1661_122X32(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t dc, uint8_t e1, uint8_t e2, uint8_t reset) : U8X8() {
  4880. u8x8_Setup(getU8x8(), u8x8_d_sbn1661_122x32, u8x8_cad_001, u8x8_byte_sed1520, u8x8_gpio_and_delay_rtthread);
  4881. u8x8_SetPin_SED1520(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, dc, e1, e2, reset);
  4882. }
  4883. };
  4884. class U8X8_SED1520_122X32 : public U8X8 {
  4885. public: U8X8_SED1520_122X32(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t dc, uint8_t e1, uint8_t e2, uint8_t reset) : U8X8() {
  4886. u8x8_Setup(getU8x8(), u8x8_d_sed1520_122x32, u8x8_cad_001, u8x8_byte_sed1520, u8x8_gpio_and_delay_rtthread);
  4887. u8x8_SetPin_SED1520(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, dc, e1, e2, reset);
  4888. }
  4889. };
  4890. class U8X8_KS0108_128X64 : public U8X8 {
  4891. public: U8X8_KS0108_128X64(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t dc, uint8_t cs0, uint8_t cs1, uint8_t cs2, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4892. u8x8_Setup(getU8x8(), u8x8_d_ks0108_128x64, u8x8_cad_001, u8x8_byte_ks0108, u8x8_gpio_and_delay_rtthread);
  4893. u8x8_SetPin_KS0108(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, dc, cs0, cs1, cs2, reset);
  4894. }
  4895. };
  4896. class U8X8_KS0108_ERM19264 : public U8X8 {
  4897. public: U8X8_KS0108_ERM19264(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t dc, uint8_t cs0, uint8_t cs1, uint8_t cs2, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4898. u8x8_Setup(getU8x8(), u8x8_d_ks0108_erm19264, u8x8_cad_001, u8x8_byte_ks0108, u8x8_gpio_and_delay_rtthread);
  4899. u8x8_SetPin_KS0108(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, dc, cs0, cs1, cs2, reset);
  4900. }
  4901. };
  4902. class U8X8_T7932_150X32 : public U8X8 {
  4903. public: U8X8_T7932_150X32(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t dc, uint8_t cs0, uint8_t cs1, uint8_t cs2, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4904. u8x8_Setup(getU8x8(), u8x8_d_t7932_150x32, u8x8_cad_001, u8x8_byte_ks0108, u8x8_gpio_and_delay_rtthread);
  4905. u8x8_SetPin_KS0108(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, dc, cs0, cs1, cs2, reset);
  4906. }
  4907. };
  4908. class U8X8_HD44102_100X64 : public U8X8 {
  4909. public: U8X8_HD44102_100X64(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t dc, uint8_t cs0, uint8_t cs1, uint8_t cs2, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4910. u8x8_Setup(getU8x8(), u8x8_d_hd44102_100x64, u8x8_cad_001, u8x8_byte_ks0108, u8x8_gpio_and_delay_rtthread);
  4911. u8x8_SetPin_KS0108(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, dc, cs0, cs1, cs2, reset);
  4912. }
  4913. };
  4914. class U8X8_LC7981_160X80_6800 : public U8X8 {
  4915. public: U8X8_LC7981_160X80_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4916. u8x8_Setup(getU8x8(), u8x8_d_lc7981_160x80, u8x8_cad_100, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  4917. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4918. }
  4919. };
  4920. class U8X8_LC7981_160X160_6800 : public U8X8 {
  4921. public: U8X8_LC7981_160X160_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4922. u8x8_Setup(getU8x8(), u8x8_d_lc7981_160x160, u8x8_cad_100, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  4923. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4924. }
  4925. };
  4926. class U8X8_LC7981_240X128_6800 : public U8X8 {
  4927. public: U8X8_LC7981_240X128_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4928. u8x8_Setup(getU8x8(), u8x8_d_lc7981_240x128, u8x8_cad_100, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  4929. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4930. }
  4931. };
  4932. class U8X8_LC7981_240X64_6800 : public U8X8 {
  4933. public: U8X8_LC7981_240X64_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4934. u8x8_Setup(getU8x8(), u8x8_d_lc7981_240x64, u8x8_cad_100, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  4935. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4936. }
  4937. };
  4938. class U8X8_T6963_240X128_8080 : public U8X8 {
  4939. public: U8X8_T6963_240X128_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4940. u8x8_Setup(getU8x8(), u8x8_d_t6963_240x128, u8x8_cad_100, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  4941. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4942. }
  4943. };
  4944. class U8X8_T6963_240X64_8080 : public U8X8 {
  4945. public: U8X8_T6963_240X64_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4946. u8x8_Setup(getU8x8(), u8x8_d_t6963_240x64, u8x8_cad_100, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  4947. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4948. }
  4949. };
  4950. class U8X8_T6963_256X64_8080 : public U8X8 {
  4951. public: U8X8_T6963_256X64_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4952. u8x8_Setup(getU8x8(), u8x8_d_t6963_256x64, u8x8_cad_100, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  4953. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4954. }
  4955. };
  4956. class U8X8_T6963_128X64_8080 : public U8X8 {
  4957. public: U8X8_T6963_128X64_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4958. u8x8_Setup(getU8x8(), u8x8_d_t6963_128x64, u8x8_cad_100, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  4959. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4960. }
  4961. };
  4962. class U8X8_T6963_128X64_ALT_8080 : public U8X8 {
  4963. public: U8X8_T6963_128X64_ALT_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4964. u8x8_Setup(getU8x8(), u8x8_d_t6963_128x64_alt, u8x8_cad_100, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  4965. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4966. }
  4967. };
  4968. class U8X8_T6963_160X80_8080 : public U8X8 {
  4969. public: U8X8_T6963_160X80_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4970. u8x8_Setup(getU8x8(), u8x8_d_t6963_160x80, u8x8_cad_100, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  4971. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4972. }
  4973. };
  4974. class U8X8_SSD1320_160X32_4W_SW_SPI : public U8X8 {
  4975. public: U8X8_SSD1320_160X32_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4976. u8x8_Setup(getU8x8(), u8x8_d_ssd1320_160x32, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4977. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  4978. }
  4979. };
  4980. #if defined U8G2_USE_HW_SPI
  4981. class U8X8_SSD1320_160X32_4W_HW_SPI : public U8X8 {
  4982. public: U8X8_SSD1320_160X32_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4983. u8x8_Setup(getU8x8(), u8x8_d_ssd1320_160x32, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  4984. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  4985. }
  4986. };
  4987. #endif
  4988. class U8X8_SSD1320_160X32_3W_SW_SPI : public U8X8 {
  4989. public: U8X8_SSD1320_160X32_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4990. u8x8_Setup(getU8x8(), u8x8_d_ssd1320_160x32, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  4991. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  4992. }
  4993. };
  4994. class U8X8_SSD1320_160X32_6800 : public U8X8 {
  4995. public: U8X8_SSD1320_160X32_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  4996. u8x8_Setup(getU8x8(), u8x8_d_ssd1320_160x32, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  4997. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  4998. }
  4999. };
  5000. class U8X8_SSD1320_160X32_8080 : public U8X8 {
  5001. public: U8X8_SSD1320_160X32_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5002. u8x8_Setup(getU8x8(), u8x8_d_ssd1320_160x32, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  5003. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  5004. }
  5005. };
  5006. class U8X8_SSD1320_160X132_4W_SW_SPI : public U8X8 {
  5007. public: U8X8_SSD1320_160X132_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5008. u8x8_Setup(getU8x8(), u8x8_d_ssd1320_160x132, u8x8_cad_001, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  5009. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  5010. }
  5011. };
  5012. #if defined U8G2_USE_HW_SPI
  5013. class U8X8_SSD1320_160X132_4W_HW_SPI : public U8X8 {
  5014. public: U8X8_SSD1320_160X132_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5015. u8x8_Setup(getU8x8(), u8x8_d_ssd1320_160x132, u8x8_cad_001, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  5016. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  5017. }
  5018. };
  5019. #endif
  5020. class U8X8_SSD1320_160X132_3W_SW_SPI : public U8X8 {
  5021. public: U8X8_SSD1320_160X132_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5022. u8x8_Setup(getU8x8(), u8x8_d_ssd1320_160x132, u8x8_cad_001, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  5023. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  5024. }
  5025. };
  5026. class U8X8_SSD1320_160X132_6800 : public U8X8 {
  5027. public: U8X8_SSD1320_160X132_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5028. u8x8_Setup(getU8x8(), u8x8_d_ssd1320_160x132, u8x8_cad_001, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  5029. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  5030. }
  5031. };
  5032. class U8X8_SSD1320_160X132_8080 : public U8X8 {
  5033. public: U8X8_SSD1320_160X132_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5034. u8x8_Setup(getU8x8(), u8x8_d_ssd1320_160x132, u8x8_cad_001, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  5035. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  5036. }
  5037. };
  5038. class U8X8_SSD1322_NHD_256X64_4W_SW_SPI : public U8X8 {
  5039. public: U8X8_SSD1322_NHD_256X64_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5040. u8x8_Setup(getU8x8(), u8x8_d_ssd1322_nhd_256x64, u8x8_cad_011, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  5041. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  5042. }
  5043. };
  5044. #if defined U8G2_USE_HW_SPI
  5045. class U8X8_SSD1322_NHD_256X64_4W_HW_SPI : public U8X8 {
  5046. public: U8X8_SSD1322_NHD_256X64_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5047. u8x8_Setup(getU8x8(), u8x8_d_ssd1322_nhd_256x64, u8x8_cad_011, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  5048. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  5049. }
  5050. };
  5051. #endif
  5052. class U8X8_SSD1322_NHD_256X64_3W_SW_SPI : public U8X8 {
  5053. public: U8X8_SSD1322_NHD_256X64_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5054. u8x8_Setup(getU8x8(), u8x8_d_ssd1322_nhd_256x64, u8x8_cad_011, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  5055. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  5056. }
  5057. };
  5058. class U8X8_SSD1322_NHD_256X64_6800 : public U8X8 {
  5059. public: U8X8_SSD1322_NHD_256X64_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5060. u8x8_Setup(getU8x8(), u8x8_d_ssd1322_nhd_256x64, u8x8_cad_011, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  5061. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  5062. }
  5063. };
  5064. class U8X8_SSD1322_NHD_256X64_8080 : public U8X8 {
  5065. public: U8X8_SSD1322_NHD_256X64_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5066. u8x8_Setup(getU8x8(), u8x8_d_ssd1322_nhd_256x64, u8x8_cad_011, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  5067. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  5068. }
  5069. };
  5070. class U8X8_SSD1322_NHD_128X64_4W_SW_SPI : public U8X8 {
  5071. public: U8X8_SSD1322_NHD_128X64_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5072. u8x8_Setup(getU8x8(), u8x8_d_ssd1322_nhd_128x64, u8x8_cad_011, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  5073. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  5074. }
  5075. };
  5076. #if defined U8G2_USE_HW_SPI
  5077. class U8X8_SSD1322_NHD_128X64_4W_HW_SPI : public U8X8 {
  5078. public: U8X8_SSD1322_NHD_128X64_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5079. u8x8_Setup(getU8x8(), u8x8_d_ssd1322_nhd_128x64, u8x8_cad_011, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  5080. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  5081. }
  5082. };
  5083. #endif
  5084. class U8X8_SSD1322_NHD_128X64_3W_SW_SPI : public U8X8 {
  5085. public: U8X8_SSD1322_NHD_128X64_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5086. u8x8_Setup(getU8x8(), u8x8_d_ssd1322_nhd_128x64, u8x8_cad_011, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  5087. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  5088. }
  5089. };
  5090. class U8X8_SSD1322_NHD_128X64_6800 : public U8X8 {
  5091. public: U8X8_SSD1322_NHD_128X64_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5092. u8x8_Setup(getU8x8(), u8x8_d_ssd1322_nhd_128x64, u8x8_cad_011, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  5093. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  5094. }
  5095. };
  5096. class U8X8_SSD1322_NHD_128X64_8080 : public U8X8 {
  5097. public: U8X8_SSD1322_NHD_128X64_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5098. u8x8_Setup(getU8x8(), u8x8_d_ssd1322_nhd_128x64, u8x8_cad_011, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  5099. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  5100. }
  5101. };
  5102. class U8X8_SSD1606_172X72_4W_SW_SPI : public U8X8 {
  5103. public: U8X8_SSD1606_172X72_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5104. u8x8_Setup(getU8x8(), u8x8_d_ssd1606_172x72, u8x8_cad_011, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  5105. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  5106. }
  5107. };
  5108. #if defined U8G2_USE_HW_SPI
  5109. class U8X8_SSD1606_172X72_4W_HW_SPI : public U8X8 {
  5110. public: U8X8_SSD1606_172X72_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5111. u8x8_Setup(getU8x8(), u8x8_d_ssd1606_172x72, u8x8_cad_011, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  5112. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  5113. }
  5114. };
  5115. #endif
  5116. class U8X8_SSD1606_172X72_3W_SW_SPI : public U8X8 {
  5117. public: U8X8_SSD1606_172X72_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5118. u8x8_Setup(getU8x8(), u8x8_d_ssd1606_172x72, u8x8_cad_011, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  5119. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  5120. }
  5121. };
  5122. class U8X8_SSD1607_200X200_4W_SW_SPI : public U8X8 {
  5123. public: U8X8_SSD1607_200X200_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5124. u8x8_Setup(getU8x8(), u8x8_d_ssd1607_200x200, u8x8_cad_011, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  5125. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  5126. }
  5127. };
  5128. #if defined U8G2_USE_HW_SPI
  5129. class U8X8_SSD1607_200X200_4W_HW_SPI : public U8X8 {
  5130. public: U8X8_SSD1607_200X200_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5131. u8x8_Setup(getU8x8(), u8x8_d_ssd1607_200x200, u8x8_cad_011, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  5132. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  5133. }
  5134. };
  5135. #endif
  5136. class U8X8_SSD1607_200X200_3W_SW_SPI : public U8X8 {
  5137. public: U8X8_SSD1607_200X200_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5138. u8x8_Setup(getU8x8(), u8x8_d_ssd1607_200x200, u8x8_cad_011, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  5139. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  5140. }
  5141. };
  5142. class U8X8_SSD1607_GD_200X200_4W_SW_SPI : public U8X8 {
  5143. public: U8X8_SSD1607_GD_200X200_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5144. u8x8_Setup(getU8x8(), u8x8_d_ssd1607_gd_200x200, u8x8_cad_011, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  5145. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  5146. }
  5147. };
  5148. #if defined U8G2_USE_HW_SPI
  5149. class U8X8_SSD1607_GD_200X200_4W_HW_SPI : public U8X8 {
  5150. public: U8X8_SSD1607_GD_200X200_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5151. u8x8_Setup(getU8x8(), u8x8_d_ssd1607_gd_200x200, u8x8_cad_011, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  5152. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  5153. }
  5154. };
  5155. #endif
  5156. class U8X8_SSD1607_GD_200X200_3W_SW_SPI : public U8X8 {
  5157. public: U8X8_SSD1607_GD_200X200_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5158. u8x8_Setup(getU8x8(), u8x8_d_ssd1607_gd_200x200, u8x8_cad_011, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  5159. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  5160. }
  5161. };
  5162. class U8X8_SSD1607_WS_200X200_4W_SW_SPI : public U8X8 {
  5163. public: U8X8_SSD1607_WS_200X200_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5164. u8x8_Setup(getU8x8(), u8x8_d_ssd1607_ws_200x200, u8x8_cad_011, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  5165. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  5166. }
  5167. };
  5168. #if defined U8G2_USE_HW_SPI
  5169. class U8X8_SSD1607_WS_200X200_4W_HW_SPI : public U8X8 {
  5170. public: U8X8_SSD1607_WS_200X200_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5171. u8x8_Setup(getU8x8(), u8x8_d_ssd1607_ws_200x200, u8x8_cad_011, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  5172. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  5173. }
  5174. };
  5175. #endif
  5176. class U8X8_SSD1607_WS_200X200_3W_SW_SPI : public U8X8 {
  5177. public: U8X8_SSD1607_WS_200X200_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5178. u8x8_Setup(getU8x8(), u8x8_d_ssd1607_ws_200x200, u8x8_cad_011, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  5179. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  5180. }
  5181. };
  5182. class U8X8_IL3820_296X128_4W_SW_SPI : public U8X8 {
  5183. public: U8X8_IL3820_296X128_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5184. u8x8_Setup(getU8x8(), u8x8_d_il3820_296x128, u8x8_cad_011, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  5185. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  5186. }
  5187. };
  5188. #if defined U8G2_USE_HW_SPI
  5189. class U8X8_IL3820_296X128_4W_HW_SPI : public U8X8 {
  5190. public: U8X8_IL3820_296X128_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5191. u8x8_Setup(getU8x8(), u8x8_d_il3820_296x128, u8x8_cad_011, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  5192. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  5193. }
  5194. };
  5195. #endif
  5196. class U8X8_IL3820_296X128_3W_SW_SPI : public U8X8 {
  5197. public: U8X8_IL3820_296X128_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5198. u8x8_Setup(getU8x8(), u8x8_d_il3820_296x128, u8x8_cad_011, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  5199. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  5200. }
  5201. };
  5202. class U8X8_IL3820_V2_296X128_4W_SW_SPI : public U8X8 {
  5203. public: U8X8_IL3820_V2_296X128_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5204. u8x8_Setup(getU8x8(), u8x8_d_il3820_v2_296x128, u8x8_cad_011, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  5205. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  5206. }
  5207. };
  5208. #if defined U8G2_USE_HW_SPI
  5209. class U8X8_IL3820_V2_296X128_4W_HW_SPI : public U8X8 {
  5210. public: U8X8_IL3820_V2_296X128_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5211. u8x8_Setup(getU8x8(), u8x8_d_il3820_v2_296x128, u8x8_cad_011, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  5212. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  5213. }
  5214. };
  5215. #endif
  5216. class U8X8_IL3820_V2_296X128_3W_SW_SPI : public U8X8 {
  5217. public: U8X8_IL3820_V2_296X128_3W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5218. u8x8_Setup(getU8x8(), u8x8_d_il3820_v2_296x128, u8x8_cad_011, u8x8_byte_3wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  5219. u8x8_SetPin_3Wire_SW_SPI(getU8x8(), clock, data, cs, reset);
  5220. }
  5221. };
  5222. class U8X8_SED1330_240X128_6800 : public U8X8 {
  5223. public: U8X8_SED1330_240X128_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5224. u8x8_Setup(getU8x8(), u8x8_d_sed1330_240x128, u8x8_cad_100, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  5225. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  5226. }
  5227. };
  5228. class U8X8_SED1330_240X128_8080 : public U8X8 {
  5229. public: U8X8_SED1330_240X128_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5230. u8x8_Setup(getU8x8(), u8x8_d_sed1330_240x128, u8x8_cad_100, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  5231. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  5232. }
  5233. };
  5234. class U8X8_RA8835_NHD_240X128_6800 : public U8X8 {
  5235. public: U8X8_RA8835_NHD_240X128_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5236. u8x8_Setup(getU8x8(), u8x8_d_ra8835_nhd_240x128, u8x8_cad_100, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  5237. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  5238. }
  5239. };
  5240. class U8X8_RA8835_NHD_240X128_8080 : public U8X8 {
  5241. public: U8X8_RA8835_NHD_240X128_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5242. u8x8_Setup(getU8x8(), u8x8_d_ra8835_nhd_240x128, u8x8_cad_100, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  5243. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  5244. }
  5245. };
  5246. class U8X8_RA8835_320X240_6800 : public U8X8 {
  5247. public: U8X8_RA8835_320X240_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5248. u8x8_Setup(getU8x8(), u8x8_d_ra8835_320x240, u8x8_cad_100, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  5249. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  5250. }
  5251. };
  5252. class U8X8_RA8835_320X240_8080 : public U8X8 {
  5253. public: U8X8_RA8835_320X240_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5254. u8x8_Setup(getU8x8(), u8x8_d_ra8835_320x240, u8x8_cad_100, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  5255. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  5256. }
  5257. };
  5258. class U8X8_MAX7219_64X8_4W_SW_SPI : public U8X8 {
  5259. public: U8X8_MAX7219_64X8_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5260. u8x8_Setup(getU8x8(), u8x8_d_max7219_64x8, u8x8_cad_empty, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  5261. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  5262. }
  5263. };
  5264. #if defined U8G2_USE_HW_SPI
  5265. class U8X8_MAX7219_64X8_4W_HW_SPI : public U8X8 {
  5266. public: U8X8_MAX7219_64X8_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5267. u8x8_Setup(getU8x8(), u8x8_d_max7219_64x8, u8x8_cad_empty, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  5268. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  5269. }
  5270. };
  5271. #endif
  5272. class U8X8_MAX7219_32X8_4W_SW_SPI : public U8X8 {
  5273. public: U8X8_MAX7219_32X8_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5274. u8x8_Setup(getU8x8(), u8x8_d_max7219_32x8, u8x8_cad_empty, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  5275. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  5276. }
  5277. };
  5278. #if defined U8G2_USE_HW_SPI
  5279. class U8X8_MAX7219_32X8_4W_HW_SPI : public U8X8 {
  5280. public: U8X8_MAX7219_32X8_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5281. u8x8_Setup(getU8x8(), u8x8_d_max7219_32x8, u8x8_cad_empty, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  5282. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  5283. }
  5284. };
  5285. #endif
  5286. class U8X8_MAX7219_8X8_4W_SW_SPI : public U8X8 {
  5287. public: U8X8_MAX7219_8X8_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5288. u8x8_Setup(getU8x8(), u8x8_d_max7219_8x8, u8x8_cad_empty, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  5289. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  5290. }
  5291. };
  5292. #if defined U8G2_USE_HW_SPI
  5293. class U8X8_MAX7219_8X8_4W_HW_SPI : public U8X8 {
  5294. public: U8X8_MAX7219_8X8_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5295. u8x8_Setup(getU8x8(), u8x8_d_max7219_8x8, u8x8_cad_empty, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  5296. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  5297. }
  5298. };
  5299. #endif
  5300. class U8X8_S1D15E06_160100_4W_SW_SPI : public U8X8 {
  5301. public: U8X8_S1D15E06_160100_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5302. u8x8_Setup(getU8x8(), u8x8_d_s1d15e06_160100, u8x8_cad_011, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  5303. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  5304. }
  5305. };
  5306. #if defined U8G2_USE_HW_SPI
  5307. class U8X8_S1D15E06_160100_4W_HW_SPI : public U8X8 {
  5308. public: U8X8_S1D15E06_160100_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5309. u8x8_Setup(getU8x8(), u8x8_d_s1d15e06_160100, u8x8_cad_011, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  5310. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  5311. }
  5312. };
  5313. #endif
  5314. class U8X8_S1D15E06_160100_6800 : public U8X8 {
  5315. public: U8X8_S1D15E06_160100_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5316. u8x8_Setup(getU8x8(), u8x8_d_s1d15e06_160100, u8x8_cad_011, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  5317. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  5318. }
  5319. };
  5320. class U8X8_S1D15E06_160100_8080 : public U8X8 {
  5321. public: U8X8_S1D15E06_160100_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5322. u8x8_Setup(getU8x8(), u8x8_d_s1d15e06_160100, u8x8_cad_011, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  5323. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  5324. }
  5325. };
  5326. class U8X8_S1D15721_240X64_4W_SW_SPI : public U8X8 {
  5327. public: U8X8_S1D15721_240X64_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5328. u8x8_Setup(getU8x8(), u8x8_d_s1d15721_240x64, u8x8_cad_011, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  5329. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  5330. }
  5331. };
  5332. #if defined U8G2_USE_HW_SPI
  5333. class U8X8_S1D15721_240X64_4W_HW_SPI : public U8X8 {
  5334. public: U8X8_S1D15721_240X64_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5335. u8x8_Setup(getU8x8(), u8x8_d_s1d15721_240x64, u8x8_cad_011, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  5336. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  5337. }
  5338. };
  5339. #endif
  5340. class U8X8_S1D15721_240X64_6800 : public U8X8 {
  5341. public: U8X8_S1D15721_240X64_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5342. u8x8_Setup(getU8x8(), u8x8_d_s1d15721_240x64, u8x8_cad_011, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  5343. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  5344. }
  5345. };
  5346. class U8X8_S1D15721_240X64_8080 : public U8X8 {
  5347. public: U8X8_S1D15721_240X64_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5348. u8x8_Setup(getU8x8(), u8x8_d_s1d15721_240x64, u8x8_cad_011, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  5349. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  5350. }
  5351. };
  5352. class U8X8_GU800_128X64_4W_SW_SPI : public U8X8 {
  5353. public: U8X8_GU800_128X64_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5354. u8x8_Setup(getU8x8(), u8x8_d_gu800_128x64, u8x8_gu800_cad_110, u8x8_byte_4wire_sw_spi, u8x8_gpio_and_delay_rtthread);
  5355. u8x8_SetPin_4Wire_SW_SPI(getU8x8(), clock, data, cs, dc, reset);
  5356. }
  5357. };
  5358. #if defined U8G2_USE_HW_SPI
  5359. class U8X8_GU800_128X64_4W_HW_SPI : public U8X8 {
  5360. public: U8X8_GU800_128X64_4W_HW_SPI(uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5361. u8x8_Setup(getU8x8(), u8x8_d_gu800_128x64, u8x8_gu800_cad_110, u8x8_byte_rtthread_4wire_hw_spi, u8x8_gpio_and_delay_rtthread);
  5362. u8x8_SetPin_4Wire_HW_SPI(getU8x8(), cs, dc, reset);
  5363. }
  5364. };
  5365. #endif
  5366. class U8X8_GU800_128X64_6800 : public U8X8 {
  5367. public: U8X8_GU800_128X64_6800(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5368. u8x8_Setup(getU8x8(), u8x8_d_gu800_128x64, u8x8_gu800_cad_110, u8x8_byte_8bit_6800mode, u8x8_gpio_and_delay_rtthread);
  5369. u8x8_SetPin_8Bit_6800(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  5370. }
  5371. };
  5372. class U8X8_GU800_128X64_8080 : public U8X8 {
  5373. public: U8X8_GU800_128X64_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
  5374. u8x8_Setup(getU8x8(), u8x8_d_gu800_128x64, u8x8_gu800_cad_110, u8x8_byte_8bit_8080mode, u8x8_gpio_and_delay_rtthread);
  5375. u8x8_SetPin_8Bit_8080(getU8x8(), d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc, reset);
  5376. }
  5377. };
  5378. #endif // U8X8_USE_PINS
  5379. #endif // U8X8LIB_HH