mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-01-19 08:05:01 +00:00
Deploying to gh-pages from @ qmk/qmk_firmware@78a0adfbb4 🚀
This commit is contained in:
parent
5429037119
commit
d4fbd6ed08
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
15
assets/ChangeLog_20210828.md.DNbHIuuM.js
Normal file
15
assets/ChangeLog_20210828.md.DNbHIuuM.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
15
assets/ChangeLog_20211127.md.ClUawWkq.js
Normal file
15
assets/ChangeLog_20211127.md.ClUawWkq.js
Normal file
File diff suppressed because one or more lines are too long
15
assets/ChangeLog_20220226.md.BWO5r_ec.js
Normal file
15
assets/ChangeLog_20220226.md.BWO5r_ec.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
15
assets/ChangeLog_20220528.md.BX3CCY1Z.js
Normal file
15
assets/ChangeLog_20220528.md.BX3CCY1Z.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
15
assets/ChangeLog_20220827.md.DjPthqDk.js
Normal file
15
assets/ChangeLog_20220827.md.DjPthqDk.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
15
assets/ChangeLog_20221126.md.DpbrnXeC.js
Normal file
15
assets/ChangeLog_20221126.md.DpbrnXeC.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
15
assets/ChangeLog_20230226.md.Cg0AYxIn.js
Normal file
15
assets/ChangeLog_20230226.md.Cg0AYxIn.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
15
assets/ChangeLog_20230528.md.nX9R48zP.js
Normal file
15
assets/ChangeLog_20230528.md.nX9R48zP.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
15
assets/ChangeLog_20230827.md.NSPhmB6l.js
Normal file
15
assets/ChangeLog_20230827.md.NSPhmB6l.js
Normal file
File diff suppressed because one or more lines are too long
15
assets/ChangeLog_20240225.md.B4-WrXj6.js
Normal file
15
assets/ChangeLog_20240225.md.B4-WrXj6.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,15 +0,0 @@
|
||||
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.DyMmIvSC.js";
|
||||
const __pageData = JSON.parse('{"title":"APA102 Driver","description":"","frontmatter":{},"headers":[],"relativePath":"apa102_driver.md","filePath":"apa102_driver.md"}');
|
||||
const _sfc_main = { name: "apa102_driver.md" };
|
||||
const _hoisted_1 = /* @__PURE__ */ createStaticVNode('<h1 id="apa102-driver" tabindex="-1">APA102 Driver <a class="header-anchor" href="#apa102-driver" aria-label="Permalink to "APA102 Driver {#apa102-driver}""></a></h1><p>This driver provides support for APA102 addressable RGB LEDs. They are similar to the <a href="./ws2812_driver">WS2812</a> LEDs, but have increased data and refresh rates.</p><h2 id="usage" tabindex="-1">Usage <a class="header-anchor" href="#usage" aria-label="Permalink to "Usage {#usage}""></a></h2><p>In most cases, the APA102 driver code is automatically included if you are using either the <a href="./feature_rgblight">RGBLight</a> or <a href="./feature_rgb_matrix">RGB Matrix</a> feature with the <code>apa102</code> driver set, and you would use those APIs instead.</p><p>However, if you need to use the driver standalone, add the following to your <code>rules.mk</code>:</p><div class="language-make vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">make</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">APA102_DRIVER_REQUIRED = yes</span></span></code></pre></div><p>You can then call the APA102 API by including <code>apa102.h</code> in your code.</p><h2 id="basic-configuration" tabindex="-1">Basic Configuration <a class="header-anchor" href="#basic-configuration" aria-label="Permalink to "Basic Configuration {#basic-configuration}""></a></h2><p>Add the following to your <code>config.h</code>:</p><table><thead><tr><th>Define</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><code>APA102_DI_PIN</code></td><td><em>Not defined</em></td><td>The GPIO pin connected to the DI pin of the first LED in the chain</td></tr><tr><td><code>APA102_CI_PIN</code></td><td><em>Not defined</em></td><td>The GPIO pin connected to the CI pin of the first LED in the chain</td></tr><tr><td><code>APA102_DEFAULT_BRIGHTNESS</code></td><td><code>31</code></td><td>The default global brightness level of the LEDs, from 0 to 31</td></tr></tbody></table><h2 id="api" tabindex="-1">API <a class="header-anchor" href="#api" aria-label="Permalink to "API {#api}""></a></h2><h3 id="void-apa102-setleds-rgb-led-t-start-led-uint16-t-num-leds" tabindex="-1"><code>void apa102_setleds(rgb_led_t *start_led, uint16_t num_leds)</code> <a class="header-anchor" href="#void-apa102-setleds-rgb-led-t-start-led-uint16-t-num-leds" aria-label="Permalink to "`void apa102_setleds(rgb_led_t *start_led, uint16_t num_leds)`""></a></h3><p>Send RGB data to the APA102 LED chain.</p><h4 id="api-apa102-setleds-arguments" tabindex="-1">Arguments <a class="header-anchor" href="#api-apa102-setleds-arguments" aria-label="Permalink to "Arguments {#api-apa102-setleds-arguments}""></a></h4><ul><li><code>rgb_led_t *start_led</code><br> A pointer to the LED array.</li><li><code>uint16_t num_leds</code><br> The length of the LED array.</li></ul><hr><h3 id="void-apa102-set-brightness-uint8-t-brightness" tabindex="-1"><code>void apa102_set_brightness(uint8_t brightness)</code> <a class="header-anchor" href="#void-apa102-set-brightness-uint8-t-brightness" aria-label="Permalink to "`void apa102_set_brightness(uint8_t brightness)`""></a></h3><p>Set the global brightness.</p><h4 id="api-apa102-set-brightness-arguments" tabindex="-1">Arguments <a class="header-anchor" href="#api-apa102-set-brightness-arguments" aria-label="Permalink to "Arguments {#api-apa102-set-brightness-arguments}""></a></h4><ul><li><code>uint8_t brightness</code><br> The brightness level to set, from 0 to 31.</li></ul>', 20);
|
||||
const _hoisted_21 = [
|
||||
_hoisted_1
|
||||
];
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return openBlock(), createElementBlock("div", null, _hoisted_21);
|
||||
}
|
||||
const apa102_driver = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
export {
|
||||
__pageData,
|
||||
apa102_driver as default
|
||||
};
|
@ -1,5 +1,5 @@
|
||||
import { V as inBrowser, a9 as useUpdateHead, aa as RouterSymbol, ab as initData, ac as dataSymbol, ad as Content, ae as ClientOnly, af as siteDataRef, ag as createSSRApp, ah as createRouter, ai as pathToFile, Y as __vitePreload, d as defineComponent, u as useData, k as onMounted, y as watchEffect, aj as usePrefetch, ak as useCopyCode, al as useCodeGroups, am as h } from "./chunks/framework.DyMmIvSC.js";
|
||||
import { R as RawTheme } from "./chunks/theme.DDP8I4Kh.js";
|
||||
import { R as RawTheme } from "./chunks/theme.BbG4GfFx.js";
|
||||
function resolveThemeExtends(theme) {
|
||||
if (theme.extends) {
|
||||
const base = resolveThemeExtends(theme.extends);
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
4
assets/chunks/@localSearchIndexroot.cRuzroHt.js
Normal file
4
assets/chunks/@localSearchIndexroot.cRuzroHt.js
Normal file
File diff suppressed because one or more lines are too long
@ -5,8 +5,8 @@ var __publicField = (obj, key, value) => {
|
||||
return value;
|
||||
};
|
||||
import { Y as __vitePreload, j as ref, x as watch, an as unrefElement, ao as tryOnScopeDispose, d as defineComponent, G as shallowRef, ap as computedAsync, h as computed, aq as useSessionStorage, ar as useLocalStorage, y as watchEffect, as as watchDebounced, k as onMounted, S as nextTick, R as onKeyStroke, a6 as useRouter, at as useEventListener, Z as useScrollLock, V as inBrowser, au as onBeforeUnmount, o as openBlock, b as createBlock, l as createBaseVNode, a2 as withModifiers, m as unref, av as withDirectives, aw as vModelText, ax as isRef, c as createElementBlock, n as normalizeClass, e as createCommentVNode, E as renderList, F as Fragment, a as createTextVNode, t as toDisplayString, ay as Teleport, p as pushScopeId, q as popScopeId, az as markRaw, aA as createApp, ac as dataSymbol, ai as pathToFile, aB as escapeRegExp, _ as _export_sfc } from "./framework.DyMmIvSC.js";
|
||||
import { u as useData, c as createSearchTranslate } from "./theme.DDP8I4Kh.js";
|
||||
const localSearchIndex = { "root": () => __vitePreload(() => import("./@localSearchIndexroot.CCnQBeQV.js"), true ? [] : void 0) };
|
||||
import { u as useData, c as createSearchTranslate } from "./theme.BbG4GfFx.js";
|
||||
const localSearchIndex = { "root": () => __vitePreload(() => import("./@localSearchIndexroot.cRuzroHt.js"), true ? [] : void 0) };
|
||||
/*!
|
||||
* tabbable 6.2.0
|
||||
* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE
|
@ -1,4 +1,4 @@
|
||||
const __vite__fileDeps=["assets/chunks/VPLocalSearchBox.Ckg6Azvt.js","assets/chunks/framework.DyMmIvSC.js"],__vite__mapDeps=i=>i.map(i=>__vite__fileDeps[i]);
|
||||
const __vite__fileDeps=["assets/chunks/VPLocalSearchBox.CxxpBRnA.js","assets/chunks/framework.DyMmIvSC.js"],__vite__mapDeps=i=>i.map(i=>__vite__fileDeps[i]);
|
||||
import { d as defineComponent, o as openBlock, c as createElementBlock, r as renderSlot, n as normalizeClass, a as createTextVNode, t as toDisplayString, b as createBlock, w as withCtx, e as createCommentVNode, T as Transition, _ as _export_sfc, u as useData$1, i as isExternal, f as treatAsHtml, g as withBase, h as computed, j as ref, k as onMounted, l as createBaseVNode, m as unref, p as pushScopeId, q as popScopeId, s as isActive, v as useMediaQuery, x as watch, y as watchEffect, z as onUnmounted, A as watchPostEffect, B as onUpdated, C as getScrollOffset, D as resolveComponent, F as Fragment, E as renderList, G as shallowRef, H as onContentUpdated, I as createVNode, J as resolveDynamicComponent, K as EXTERNAL_URL_RE, L as useRoute, M as mergeProps, N as inject, O as useWindowSize, P as normalizeStyle, Q as onClickOutside, R as onKeyStroke, S as nextTick, U as useWindowScroll, V as inBrowser, W as readonly, X as defineAsyncComponent, Y as __vitePreload, Z as useScrollLock, $ as provide, a0 as toHandlers, a1 as withKeys, a2 as withModifiers, a3 as useSlots, a4 as reactive, a5 as toRef, a6 as useRouter, a7 as onBeforeMount } from "./framework.DyMmIvSC.js";
|
||||
const _sfc_main$Z = /* @__PURE__ */ defineComponent({
|
||||
__name: "VPBadge",
|
||||
@ -2225,7 +2225,7 @@ const _hoisted_3$6 = {
|
||||
const _sfc_main$l = /* @__PURE__ */ defineComponent({
|
||||
__name: "VPNavBarSearch",
|
||||
setup(__props) {
|
||||
const VPLocalSearchBox = defineAsyncComponent(() => __vitePreload(() => import("./VPLocalSearchBox.Ckg6Azvt.js"), true ? __vite__mapDeps([0,1]) : void 0));
|
||||
const VPLocalSearchBox = defineAsyncComponent(() => __vitePreload(() => import("./VPLocalSearchBox.CxxpBRnA.js"), true ? __vite__mapDeps([0,1]) : void 0));
|
||||
const VPAlgoliaSearchBox = () => null;
|
||||
const { theme: theme2 } = useData();
|
||||
const loaded = ref(false);
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
15
assets/config_options.md.DvMeqlpB.js
Normal file
15
assets/config_options.md.DvMeqlpB.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
15
assets/custom_quantum_functions.md.DrUNiV1i.js
Normal file
15
assets/custom_quantum_functions.md.DrUNiV1i.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
15
assets/driver_installation_zadig.md.CX9-BACt.js
Normal file
15
assets/driver_installation_zadig.md.CX9-BACt.js
Normal file
File diff suppressed because one or more lines are too long
15
assets/drivers_adc.md.DzU8txf8.js
Normal file
15
assets/drivers_adc.md.DzU8txf8.js
Normal file
File diff suppressed because one or more lines are too long
@ -1,6 +1,6 @@
|
||||
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.DyMmIvSC.js";
|
||||
const __pageData = JSON.parse('{"title":"ADC Driver","description":"","frontmatter":{},"headers":[],"relativePath":"adc_driver.md","filePath":"adc_driver.md"}');
|
||||
const _sfc_main = { name: "adc_driver.md" };
|
||||
const __pageData = JSON.parse('{"title":"ADC Driver","description":"","frontmatter":{},"headers":[],"relativePath":"drivers/adc.md","filePath":"drivers/adc.md"}');
|
||||
const _sfc_main = { name: "drivers/adc.md" };
|
||||
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 32);
|
||||
const _hoisted_33 = [
|
||||
_hoisted_1
|
||||
@ -8,8 +8,8 @@ const _hoisted_33 = [
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return openBlock(), createElementBlock("div", null, _hoisted_33);
|
||||
}
|
||||
const adc_driver = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
const adc = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
export {
|
||||
__pageData,
|
||||
adc_driver as default
|
||||
adc as default
|
||||
};
|
15
assets/drivers_apa102.md.Qb-KXRpF.js
Normal file
15
assets/drivers_apa102.md.Qb-KXRpF.js
Normal file
@ -0,0 +1,15 @@
|
||||
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.DyMmIvSC.js";
|
||||
const __pageData = JSON.parse('{"title":"APA102 Driver","description":"","frontmatter":{},"headers":[],"relativePath":"drivers/apa102.md","filePath":"drivers/apa102.md"}');
|
||||
const _sfc_main = { name: "drivers/apa102.md" };
|
||||
const _hoisted_1 = /* @__PURE__ */ createStaticVNode('<h1 id="apa102-driver" tabindex="-1">APA102 Driver <a class="header-anchor" href="#apa102-driver" aria-label="Permalink to "APA102 Driver {#apa102-driver}""></a></h1><p>This driver provides support for APA102 addressable RGB LEDs. They are similar to the <a href="./ws2812">WS2812</a> LEDs, but have increased data and refresh rates.</p><h2 id="usage" tabindex="-1">Usage <a class="header-anchor" href="#usage" aria-label="Permalink to "Usage {#usage}""></a></h2><p>In most cases, the APA102 driver code is automatically included if you are using either the <a href="./../features/rgblight">RGBLight</a> or <a href="./../features/rgb_matrix">RGB Matrix</a> feature with the <code>apa102</code> driver set, and you would use those APIs instead.</p><p>However, if you need to use the driver standalone, add the following to your <code>rules.mk</code>:</p><div class="language-make vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">make</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">APA102_DRIVER_REQUIRED = yes</span></span></code></pre></div><p>You can then call the APA102 API by including <code>apa102.h</code> in your code.</p><h2 id="basic-configuration" tabindex="-1">Basic Configuration <a class="header-anchor" href="#basic-configuration" aria-label="Permalink to "Basic Configuration {#basic-configuration}""></a></h2><p>Add the following to your <code>config.h</code>:</p><table><thead><tr><th>Define</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><code>APA102_DI_PIN</code></td><td><em>Not defined</em></td><td>The GPIO pin connected to the DI pin of the first LED in the chain</td></tr><tr><td><code>APA102_CI_PIN</code></td><td><em>Not defined</em></td><td>The GPIO pin connected to the CI pin of the first LED in the chain</td></tr><tr><td><code>APA102_DEFAULT_BRIGHTNESS</code></td><td><code>31</code></td><td>The default global brightness level of the LEDs, from 0 to 31</td></tr></tbody></table><h2 id="api" tabindex="-1">API <a class="header-anchor" href="#api" aria-label="Permalink to "API {#api}""></a></h2><h3 id="void-apa102-setleds-rgb-led-t-start-led-uint16-t-num-leds" tabindex="-1"><code>void apa102_setleds(rgb_led_t *start_led, uint16_t num_leds)</code> <a class="header-anchor" href="#void-apa102-setleds-rgb-led-t-start-led-uint16-t-num-leds" aria-label="Permalink to "`void apa102_setleds(rgb_led_t *start_led, uint16_t num_leds)`""></a></h3><p>Send RGB data to the APA102 LED chain.</p><h4 id="api-apa102-setleds-arguments" tabindex="-1">Arguments <a class="header-anchor" href="#api-apa102-setleds-arguments" aria-label="Permalink to "Arguments {#api-apa102-setleds-arguments}""></a></h4><ul><li><code>rgb_led_t *start_led</code><br> A pointer to the LED array.</li><li><code>uint16_t num_leds</code><br> The length of the LED array.</li></ul><hr><h3 id="void-apa102-set-brightness-uint8-t-brightness" tabindex="-1"><code>void apa102_set_brightness(uint8_t brightness)</code> <a class="header-anchor" href="#void-apa102-set-brightness-uint8-t-brightness" aria-label="Permalink to "`void apa102_set_brightness(uint8_t brightness)`""></a></h3><p>Set the global brightness.</p><h4 id="api-apa102-set-brightness-arguments" tabindex="-1">Arguments <a class="header-anchor" href="#api-apa102-set-brightness-arguments" aria-label="Permalink to "Arguments {#api-apa102-set-brightness-arguments}""></a></h4><ul><li><code>uint8_t brightness</code><br> The brightness level to set, from 0 to 31.</li></ul>', 20);
|
||||
const _hoisted_21 = [
|
||||
_hoisted_1
|
||||
];
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return openBlock(), createElementBlock("div", null, _hoisted_21);
|
||||
}
|
||||
const apa102 = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
export {
|
||||
__pageData,
|
||||
apa102 as default
|
||||
};
|
@ -1,6 +1,6 @@
|
||||
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.DyMmIvSC.js";
|
||||
const __pageData = JSON.parse('{"title":"APA102 Driver","description":"","frontmatter":{},"headers":[],"relativePath":"apa102_driver.md","filePath":"apa102_driver.md"}');
|
||||
const _sfc_main = { name: "apa102_driver.md" };
|
||||
const __pageData = JSON.parse('{"title":"APA102 Driver","description":"","frontmatter":{},"headers":[],"relativePath":"drivers/apa102.md","filePath":"drivers/apa102.md"}');
|
||||
const _sfc_main = { name: "drivers/apa102.md" };
|
||||
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 20);
|
||||
const _hoisted_21 = [
|
||||
_hoisted_1
|
||||
@ -8,8 +8,8 @@ const _hoisted_21 = [
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return openBlock(), createElementBlock("div", null, _hoisted_21);
|
||||
}
|
||||
const apa102_driver = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
const apa102 = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
export {
|
||||
__pageData,
|
||||
apa102_driver as default
|
||||
apa102 as default
|
||||
};
|
15
assets/drivers_audio.md.mqaz6p5N.js
Normal file
15
assets/drivers_audio.md.mqaz6p5N.js
Normal file
File diff suppressed because one or more lines are too long
@ -1,6 +1,6 @@
|
||||
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.DyMmIvSC.js";
|
||||
const __pageData = JSON.parse('{"title":"Audio Driver","description":"","frontmatter":{},"headers":[],"relativePath":"audio_driver.md","filePath":"audio_driver.md"}');
|
||||
const _sfc_main = { name: "audio_driver.md" };
|
||||
const __pageData = JSON.parse('{"title":"Audio Driver","description":"","frontmatter":{},"headers":[],"relativePath":"drivers/audio.md","filePath":"drivers/audio.md"}');
|
||||
const _sfc_main = { name: "drivers/audio.md" };
|
||||
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 56);
|
||||
const _hoisted_57 = [
|
||||
_hoisted_1
|
||||
@ -8,8 +8,8 @@ const _hoisted_57 = [
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return openBlock(), createElementBlock("div", null, _hoisted_57);
|
||||
}
|
||||
const audio_driver = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
const audio = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
export {
|
||||
__pageData,
|
||||
audio_driver as default
|
||||
audio as default
|
||||
};
|
File diff suppressed because one or more lines are too long
@ -1,6 +1,6 @@
|
||||
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.DyMmIvSC.js";
|
||||
const __pageData = JSON.parse('{"title":"EEPROM Driver Configuration","description":"","frontmatter":{},"headers":[],"relativePath":"eeprom_driver.md","filePath":"eeprom_driver.md"}');
|
||||
const _sfc_main = { name: "eeprom_driver.md" };
|
||||
const __pageData = JSON.parse('{"title":"EEPROM Driver Configuration","description":"","frontmatter":{},"headers":[],"relativePath":"drivers/eeprom.md","filePath":"drivers/eeprom.md"}');
|
||||
const _sfc_main = { name: "drivers/eeprom.md" };
|
||||
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 53);
|
||||
const _hoisted_54 = [
|
||||
_hoisted_1
|
||||
@ -8,8 +8,8 @@ const _hoisted_54 = [
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return openBlock(), createElementBlock("div", null, _hoisted_54);
|
||||
}
|
||||
const eeprom_driver = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
const eeprom = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
export {
|
||||
__pageData,
|
||||
eeprom_driver as default
|
||||
eeprom as default
|
||||
};
|
@ -1,6 +1,6 @@
|
||||
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.DyMmIvSC.js";
|
||||
const __pageData = JSON.parse('{"title":"FLASH Driver Configuration","description":"","frontmatter":{},"headers":[],"relativePath":"flash_driver.md","filePath":"flash_driver.md"}');
|
||||
const _sfc_main = { name: "flash_driver.md" };
|
||||
const __pageData = JSON.parse('{"title":"FLASH Driver Configuration","description":"","frontmatter":{},"headers":[],"relativePath":"drivers/flash.md","filePath":"drivers/flash.md"}');
|
||||
const _sfc_main = { name: "drivers/flash.md" };
|
||||
const _hoisted_1 = /* @__PURE__ */ createStaticVNode('<h1 id="flash-driver-configuration" tabindex="-1">FLASH Driver Configuration <a class="header-anchor" href="#flash-driver-configuration" aria-label="Permalink to "FLASH Driver Configuration {#flash-driver-configuration}""></a></h1><p>The FLASH driver can be swapped out depending on the needs of the keyboard, or whether extra hardware is present.</p><table><thead><tr><th>Driver</th><th>Description</th></tr></thead><tbody><tr><td><code>FLASH_DRIVER = spi</code></td><td>Supports writing to almost all NOR Flash chips. See the driver section below.</td></tr></tbody></table><h2 id="spi-flash-driver-configuration" tabindex="-1">SPI FLASH Driver Configuration <a class="header-anchor" href="#spi-flash-driver-configuration" aria-label="Permalink to "SPI FLASH Driver Configuration {#spi-flash-driver-configuration}""></a></h2><p>Currently QMK supports almost all NOR Flash chips over SPI. As such, requires a working spi_master driver configuration. You can override the driver configuration via your config.h:</p><table><thead><tr><th><code>config.h</code> override</th><th>Description</th><th>Default Value</th></tr></thead><tbody><tr><td><code>#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN</code></td><td>SPI Slave select pin in order to inform that the FLASH is currently being addressed</td><td><em>none</em></td></tr><tr><td><code>#define EXTERNAL_FLASH_SPI_CLOCK_DIVISOR</code></td><td>Clock divisor used to divide the peripheral clock to derive the SPI frequency</td><td><code>8</code></td></tr><tr><td><code>#define EXTERNAL_FLASH_PAGE_SIZE</code></td><td>The Page size of the FLASH in bytes, as specified in the datasheet</td><td><code>256</code></td></tr><tr><td><code>#define EXTERNAL_FLASH_SECTOR_SIZE</code></td><td>The sector size of the FLASH in bytes, as specified in the datasheet</td><td><code>(4 * 1024)</code></td></tr><tr><td><code>#define EXTERNAL_FLASH_BLOCK_SIZE</code></td><td>The block size of the FLASH in bytes, as specified in the datasheet</td><td><code>(64 * 1024)</code></td></tr><tr><td><code>#define EXTERNAL_FLASH_SIZE</code></td><td>The total size of the FLASH in bytes, as specified in the datasheet</td><td><code>(512 * 1024)</code></td></tr><tr><td><code>#define EXTERNAL_FLASH_ADDRESS_SIZE</code></td><td>The Flash address size in bytes, as specified in datasheet</td><td><code>3</code></td></tr></tbody></table><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>All the above default configurations are based on MX25L4006E NOR Flash.</p></div>', 7);
|
||||
const _hoisted_8 = [
|
||||
_hoisted_1
|
||||
@ -8,8 +8,8 @@ const _hoisted_8 = [
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return openBlock(), createElementBlock("div", null, _hoisted_8);
|
||||
}
|
||||
const flash_driver = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
const flash = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
export {
|
||||
__pageData,
|
||||
flash_driver as default
|
||||
flash as default
|
||||
};
|
@ -1,6 +1,6 @@
|
||||
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.DyMmIvSC.js";
|
||||
const __pageData = JSON.parse('{"title":"FLASH Driver Configuration","description":"","frontmatter":{},"headers":[],"relativePath":"flash_driver.md","filePath":"flash_driver.md"}');
|
||||
const _sfc_main = { name: "flash_driver.md" };
|
||||
const __pageData = JSON.parse('{"title":"FLASH Driver Configuration","description":"","frontmatter":{},"headers":[],"relativePath":"drivers/flash.md","filePath":"drivers/flash.md"}');
|
||||
const _sfc_main = { name: "drivers/flash.md" };
|
||||
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 7);
|
||||
const _hoisted_8 = [
|
||||
_hoisted_1
|
||||
@ -8,8 +8,8 @@ const _hoisted_8 = [
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return openBlock(), createElementBlock("div", null, _hoisted_8);
|
||||
}
|
||||
const flash_driver = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
const flash = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
export {
|
||||
__pageData,
|
||||
flash_driver as default
|
||||
flash as default
|
||||
};
|
@ -1,6 +1,6 @@
|
||||
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.DyMmIvSC.js";
|
||||
const __pageData = JSON.parse('{"title":"GPIO Control","description":"","frontmatter":{},"headers":[],"relativePath":"gpio_control.md","filePath":"gpio_control.md"}');
|
||||
const _sfc_main = { name: "gpio_control.md" };
|
||||
const __pageData = JSON.parse('{"title":"GPIO Control","description":"","frontmatter":{},"headers":[],"relativePath":"drivers/gpio.md","filePath":"drivers/gpio.md"}');
|
||||
const _sfc_main = { name: "drivers/gpio.md" };
|
||||
const _hoisted_1 = /* @__PURE__ */ createStaticVNode('<h1 id="gpio-control" tabindex="-1">GPIO Control <a class="header-anchor" href="#gpio-control" aria-label="Permalink to "GPIO Control {#gpio-control}""></a></h1><p>QMK has a GPIO control abstraction layer which is microcontroller agnostic. This is done to allow easy access to pin control across different platforms.</p><h2 id="macros" tabindex="-1">Macros <a class="header-anchor" href="#macros" aria-label="Permalink to "Macros {#macros}""></a></h2><p>The following macros provide basic control of GPIOs and are found in <code>platforms/<platform>/gpio.h</code>.</p><table><thead><tr><th>Macro</th><th>Description</th></tr></thead><tbody><tr><td><code>gpio_set_pin_input(pin)</code></td><td>Set pin as input with high impedance (High-Z)</td></tr><tr><td><code>gpio_set_pin_input_high(pin)</code></td><td>Set pin as input with builtin pull-up resistor</td></tr><tr><td><code>gpio_set_pin_input_low(pin)</code></td><td>Set pin as input with builtin pull-down resistor (unavailable on AVR)</td></tr><tr><td><code>gpio_set_pin_output(pin)</code></td><td>Set pin as output (alias of <code>gpio_set_pin_output_push_pull</code>)</td></tr><tr><td><code>gpio_set_pin_output_push_pull(pin)</code></td><td>Set pin as output, push/pull mode</td></tr><tr><td><code>gpio_set_pin_output_open_drain(pin)</code></td><td>Set pin as output, open-drain mode (unavailable on AVR and ATSAM)</td></tr><tr><td><code>gpio_write_pin_high(pin)</code></td><td>Set pin level as high, assuming it is an output</td></tr><tr><td><code>gpio_write_pin_low(pin)</code></td><td>Set pin level as low, assuming it is an output</td></tr><tr><td><code>gpio_write_pin(pin, level)</code></td><td>Set pin level, assuming it is an output</td></tr><tr><td><code>gpio_read_pin(pin)</code></td><td>Returns the level of the pin</td></tr><tr><td><code>gpio_toggle_pin(pin)</code></td><td>Invert pin level, assuming it is an output</td></tr></tbody></table><h2 id="advanced-settings" tabindex="-1">Advanced Settings <a class="header-anchor" href="#advanced-settings" aria-label="Permalink to "Advanced Settings {#advanced-settings}""></a></h2><p>Each microcontroller can have multiple advanced settings regarding its GPIO. This abstraction layer does not limit the use of architecture-specific functions. Advanced users should consult the datasheet of their desired device. For AVR, the standard <code>avr/io.h</code> library is used; for STM32, the ChibiOS <a href="https://chibios.sourceforge.net/docs3/hal/group___p_a_l.html" target="_blank" rel="noreferrer">PAL library</a> is used.</p><h2 id="atomic-operation" tabindex="-1">Atomic Operation <a class="header-anchor" href="#atomic-operation" aria-label="Permalink to "Atomic Operation {#atomic-operation}""></a></h2><p>The above functions are not always guaranteed to work atomically. Therefore, if you want to prevent interruptions in the middle of operations when using multiple combinations of the above functions, use the following <code>ATOMIC_BLOCK_FORCEON</code> macro.</p><p>eg.</p><div class="language-c vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">void</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> some_function</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">void</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) {</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // some process</span></span>\n<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> ATOMIC_BLOCK_FORCEON {</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // Atomic Processing</span></span>\n<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // some process</span></span>\n<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre></div><p><code>ATOMIC_BLOCK_FORCEON</code> forces interrupts to be disabled before the block is executed, without regard to whether they are enabled or disabled. Then, after the block is executed, the interrupt is enabled.</p><p>Note that <code>ATOMIC_BLOCK_FORCEON</code> can therefore be used if you know that interrupts are enabled before the execution of the block, or if you know that it is OK to enable interrupts at the completion of the block.</p>', 13);
|
||||
const _hoisted_14 = [
|
||||
_hoisted_1
|
||||
@ -8,8 +8,8 @@ const _hoisted_14 = [
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return openBlock(), createElementBlock("div", null, _hoisted_14);
|
||||
}
|
||||
const gpio_control = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
const gpio = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
export {
|
||||
__pageData,
|
||||
gpio_control as default
|
||||
gpio as default
|
||||
};
|
@ -1,6 +1,6 @@
|
||||
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.DyMmIvSC.js";
|
||||
const __pageData = JSON.parse('{"title":"GPIO Control","description":"","frontmatter":{},"headers":[],"relativePath":"gpio_control.md","filePath":"gpio_control.md"}');
|
||||
const _sfc_main = { name: "gpio_control.md" };
|
||||
const __pageData = JSON.parse('{"title":"GPIO Control","description":"","frontmatter":{},"headers":[],"relativePath":"drivers/gpio.md","filePath":"drivers/gpio.md"}');
|
||||
const _sfc_main = { name: "drivers/gpio.md" };
|
||||
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 13);
|
||||
const _hoisted_14 = [
|
||||
_hoisted_1
|
||||
@ -8,8 +8,8 @@ const _hoisted_14 = [
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return openBlock(), createElementBlock("div", null, _hoisted_14);
|
||||
}
|
||||
const gpio_control = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
const gpio = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
export {
|
||||
__pageData,
|
||||
gpio_control as default
|
||||
gpio as default
|
||||
};
|
15
assets/drivers_i2c.md.Cuj87reB.js
Normal file
15
assets/drivers_i2c.md.Cuj87reB.js
Normal file
File diff suppressed because one or more lines are too long
@ -1,6 +1,6 @@
|
||||
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.DyMmIvSC.js";
|
||||
const __pageData = JSON.parse('{"title":"I2C Master Driver","description":"","frontmatter":{},"headers":[],"relativePath":"i2c_driver.md","filePath":"i2c_driver.md"}');
|
||||
const _sfc_main = { name: "i2c_driver.md" };
|
||||
const __pageData = JSON.parse('{"title":"I2C Master Driver","description":"","frontmatter":{},"headers":[],"relativePath":"drivers/i2c.md","filePath":"drivers/i2c.md"}');
|
||||
const _sfc_main = { name: "drivers/i2c.md" };
|
||||
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 92);
|
||||
const _hoisted_93 = [
|
||||
_hoisted_1
|
||||
@ -8,8 +8,8 @@ const _hoisted_93 = [
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return openBlock(), createElementBlock("div", null, _hoisted_93);
|
||||
}
|
||||
const i2c_driver = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
const i2c = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
export {
|
||||
__pageData,
|
||||
i2c_driver as default
|
||||
i2c as default
|
||||
};
|
15
assets/drivers_serial.md.qxjytVdM.js
Normal file
15
assets/drivers_serial.md.qxjytVdM.js
Normal file
File diff suppressed because one or more lines are too long
@ -1,6 +1,6 @@
|
||||
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.DyMmIvSC.js";
|
||||
const __pageData = JSON.parse(`{"title":"'serial' Driver","description":"","frontmatter":{},"headers":[],"relativePath":"serial_driver.md","filePath":"serial_driver.md"}`);
|
||||
const _sfc_main = { name: "serial_driver.md" };
|
||||
const __pageData = JSON.parse(`{"title":"'serial' Driver","description":"","frontmatter":{},"headers":[],"relativePath":"drivers/serial.md","filePath":"drivers/serial.md"}`);
|
||||
const _sfc_main = { name: "drivers/serial.md" };
|
||||
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 115);
|
||||
const _hoisted_116 = [
|
||||
_hoisted_1
|
||||
@ -8,8 +8,8 @@ const _hoisted_116 = [
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return openBlock(), createElementBlock("div", null, _hoisted_116);
|
||||
}
|
||||
const serial_driver = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
const serial = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
export {
|
||||
__pageData,
|
||||
serial_driver as default
|
||||
serial as default
|
||||
};
|
15
assets/drivers_spi.md.tJVeIT7e.js
Normal file
15
assets/drivers_spi.md.tJVeIT7e.js
Normal file
File diff suppressed because one or more lines are too long
@ -1,6 +1,6 @@
|
||||
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.DyMmIvSC.js";
|
||||
const __pageData = JSON.parse('{"title":"SPI Master Driver","description":"","frontmatter":{},"headers":[],"relativePath":"spi_driver.md","filePath":"spi_driver.md"}');
|
||||
const _sfc_main = { name: "spi_driver.md" };
|
||||
const __pageData = JSON.parse('{"title":"SPI Master Driver","description":"","frontmatter":{},"headers":[],"relativePath":"drivers/spi.md","filePath":"drivers/spi.md"}');
|
||||
const _sfc_main = { name: "drivers/spi.md" };
|
||||
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 61);
|
||||
const _hoisted_62 = [
|
||||
_hoisted_1
|
||||
@ -8,8 +8,8 @@ const _hoisted_62 = [
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return openBlock(), createElementBlock("div", null, _hoisted_62);
|
||||
}
|
||||
const spi_driver = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
const spi = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
export {
|
||||
__pageData,
|
||||
spi_driver as default
|
||||
spi as default
|
||||
};
|
File diff suppressed because one or more lines are too long
@ -1,6 +1,6 @@
|
||||
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.DyMmIvSC.js";
|
||||
const __pageData = JSON.parse('{"title":"UART Driver","description":"","frontmatter":{},"headers":[],"relativePath":"uart_driver.md","filePath":"uart_driver.md"}');
|
||||
const _sfc_main = { name: "uart_driver.md" };
|
||||
const __pageData = JSON.parse('{"title":"UART Driver","description":"","frontmatter":{},"headers":[],"relativePath":"drivers/uart.md","filePath":"drivers/uart.md"}');
|
||||
const _sfc_main = { name: "drivers/uart.md" };
|
||||
const _hoisted_1 = /* @__PURE__ */ createStaticVNode("", 47);
|
||||
const _hoisted_48 = [
|
||||
_hoisted_1
|
||||
@ -8,8 +8,8 @@ const _hoisted_48 = [
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return openBlock(), createElementBlock("div", null, _hoisted_48);
|
||||
}
|
||||
const uart_driver = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
const uart = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
export {
|
||||
__pageData,
|
||||
uart_driver as default
|
||||
uart as default
|
||||
};
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user