<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Include Files on </title>
    <link>/esp32/includefiles/</link>
    <description>Recent content in Include Files on </description>
    <generator>Hugo -- gohugo.io</generator>
    <lastBuildDate>Fri, 24 Mar 2023 16:15:27 -0700</lastBuildDate><atom:link href="/esp32/includefiles/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>self_display.h</title>
      <link>/esp32/includefiles/self_display/</link>
      <pubDate>Fri, 24 Mar 2023 16:15:27 -0700</pubDate>
      
      <guid>/esp32/includefiles/self_display/</guid>
      <description>self_display.h  // ************************************************************* // Code and Variables for Controlling Display // ************************************************************* // 0 &amp;lt;= nx &amp;lt; 20 // 0 &amp;lt;= ny &amp;lt; 3 // *************************************************************  #include &amp;lt;U8g2lib.h&amp;gt; U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE); uint8_t selfCurs_nx, selfCurs_ny; uint8_t selfCurs_on; void selfSetup() { u8g2.begin(); u8g2.setDisplayRotation(U8G2_R0); u8g2.clearBuffer(); u8g2.setFont(u8g2_font_6x10_mf); u8g2.setFontRefHeightExtendedText(); u8g2.setDrawColor(1); u8g2.setFontPosTop(); u8g2.setFontDirection(0); u8g2.drawFrame(0,0, 128, 64); u8g2.sendBuffer(); selfCurs_on = 0; } void selfClrScrn() { u8g2.clearBuffer(); u8g2.drawFrame(0,0, 128, 64); selfCurs_on = 0; } void selfDraw() { u8g2.</description>
    </item>
    
    <item>
      <title>self_timers.h</title>
      <link>/esp32/includefiles/self_timers/</link>
      <pubDate>Fri, 24 Mar 2023 16:15:27 -0700</pubDate>
      
      <guid>/esp32/includefiles/self_timers/</guid>
      <description>self_timers.h  // ************************************************************* // Code for setting up ESP32 Timers // ************************************************************* // The base clock of timers is 80MHz --&amp;gt; 12.5ns  // jjtimer0 will tic at 10us ( 10us = 800 * 12.5ns) // jjtimer1 will tic at 100ns (100ns = 8 * 12.5ns)  // jjtimer0_intr will alarm every jjper0 tics (jjper0 = 100 for alarm rate of 1ms) // jjtimer1_intr will alarm every jjper1 tics (jjper1 = 10000000 / (jjsound_freq * 2)) // ************************************************************* hw_timer_t *jjtimer0; hw_timer_t *jjtimer1; int32_t jjper0; // jjtimer0 alarm setting int32_t jjper1; // jjtimer1 alarm setting  int32_t jjtime_on; // sound pulse duration int32_t jjtime_tper; // sound pulse period  bool jjsound_on; // sound pulse itself int32_t jjsound_freq; // sound pulse frequency  int32_t jjcnt0; // sound pulse counter variable  bool jjstate1; // jjtimer1 toggle state variable bool jjstate2; // jjtimer1 toggle state variable bool jjspk; uint8_t jjbdx; uint8_t jjbnum; void IRAM_ATTR jjtimer0_intr() { if (jjcnt0 == 0) { jjsound_on = true; jjbdx = (jjbdx + 1) % jjbnum; } else if (jjcnt0 == jjtime_on) { jjsound_on = false; } jjcnt0 = jjcnt0 + 1; if (jjcnt0 &amp;gt;= jjtime_tper) { jjcnt0 = 0; } } void IRAM_ATTR jjtimer1_intr() { if (jjsound_on) { jjstate1 = !</description>
    </item>
    
  </channel>
</rss>
