fixed *.md indenting
apparently, sublists need to be indented 4 spaces (1 tab) or more to be recognized as such (because subsequent lines of a list may be indented up to 3 spaces). it's right there on the markdown syntax page, but i didn't catch it the first time.partial-rewrite
parent
a0f69c9200
commit
15efb43b76
|
@ -115,8 +115,10 @@
|
|||
: tutorial by [Dean Camera] (http://fourwalledcubicle.com/AboutMe.php)
|
||||
(on <http://www.avrfreaks.net/>)
|
||||
|
||||
* updated version available as a pdf at [Four Walled Cubicle : AVR Articles]
|
||||
(http://www.fourwalledcubicle.com/AVRArticles.php), along with a few other good articles on AVR programming
|
||||
* updated version available as a pdf at
|
||||
[Four Walled Cubicle : AVR Articles]
|
||||
(http://www.fourwalledcubicle.com/AVRArticles.php), along with a few
|
||||
other good articles on AVR programming
|
||||
|
||||
|
||||
## Protocol Stuff
|
||||
|
@ -289,6 +291,12 @@
|
|||
|
||||
## Miscellaneous
|
||||
|
||||
### Typical Keyboard Information
|
||||
|
||||
* [Keyboard Scan Rates]
|
||||
(http://geekhack.org/showwiki.php?title=Keyboard+scan+rates)
|
||||
list (on <http://geekhack.org/>)
|
||||
|
||||
### Documentation and Design Tools
|
||||
|
||||
* [Markdown: Syntax]
|
||||
|
@ -302,7 +310,7 @@
|
|||
(http://stackoverflow.com/questions/6422603/circuit-block-diagram-drawing)
|
||||
question (on <http://stackoverflow.com/>)
|
||||
|
||||
* [Ti_k_Z and PGF]
|
||||
* [Ti<i>k</i>Z and PGF]
|
||||
(http://www.texample.net/tikz/)
|
||||
: a TeX graphics package
|
||||
|
||||
|
@ -320,12 +328,6 @@
|
|||
* [Inkscape : Connector tool tutorial]
|
||||
(http://wiki.inkscape.org/wiki/index.php/UsingTheConnectorTool)
|
||||
|
||||
### Typical Keyboard Information
|
||||
|
||||
* [Keyboard Scan Rates]
|
||||
(http://geekhack.org/showwiki.php?title=Keyboard+scan+rates)
|
||||
list (on <http://geekhack.org/>)
|
||||
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
|
|
|
@ -21,11 +21,11 @@ To write a new one:
|
|||
for the layout. This should be enough for about 7 layers. Watch your RAM
|
||||
usage if you're getting close.
|
||||
|
||||
* The layout matricies could be moved to flash memory (program space, instead
|
||||
of data space) in order to save RAM, but that doesn't seem necessary at the
|
||||
moment. It would also be slightly slower, though that probably shouldn't
|
||||
be a concern. It might be necessary (or convenient) if one were trying to
|
||||
implement on-keyboard remaping.
|
||||
* The layout matricies could be moved to flash memory (program space,
|
||||
instead of data space) in order to save RAM, but that doesn't seem
|
||||
necessary at the moment. It would also be slightly slower, though that
|
||||
probably shouldn't be a concern. It might be necessary (or convenient)
|
||||
if one were trying to implement on-keyboard remaping.
|
||||
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
* coordinates without brackets are unused
|
||||
* left and right hands are mostly the same except that `row += 6` for the left
|
||||
|
||||
```
|
||||
....... rows x columns = positions; assigned, unassigned .......
|
||||
....... per hand: 6 x 7 = 42; 38, 4 .......
|
||||
....... total: 12 x 7 = 84; 76, 8 .......
|
||||
|
@ -18,6 +19,7 @@
|
|||
[B0] B6 50 [56]
|
||||
[B1] [B5] [51] [55]
|
||||
[B2][B3][B4] [52][53][54]
|
||||
```
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
|
|
|
@ -45,11 +45,11 @@
|
|||
* The user-defined bits are the three least significant
|
||||
* I2C addresses are 7 bits long (the last bit in the byte is used for
|
||||
indicating read/write)
|
||||
* RESET (pin16) must be externally biased. Since we're not going to trigger
|
||||
it ourselves, we can tie it high.
|
||||
* This is not noted in the I2C Pinout Description section of the MCP23018
|
||||
datasheet, but it's true (empirically), and it is noted in the SPI Pinout
|
||||
Description section, and in the MCP23017 datasheet.
|
||||
* RESET (pin16) must be externally biased. Since we're not going to
|
||||
trigger it ourselves, we can tie it high.
|
||||
* This is not noted in the I2C Pinout Description section of the
|
||||
MCP23018 datasheet, but it's true (empirically), and it is noted in
|
||||
the SPI Pinout Description section, and in the MCP23017 datasheet.
|
||||
* I'm not the first person who's failed to notice ;)
|
||||
* <http://davidn.org/wp/?p=89>
|
||||
* <http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1293498979>
|
||||
|
@ -70,8 +70,8 @@
|
|||
|
||||
* IOCON register (see datasheet section 1.6, table 1-5, register 1-8)
|
||||
* BANK: bit 7; read/write; default = 0
|
||||
* 1: The registers associated with each port are separated into different
|
||||
banks
|
||||
* 1: The registers associated with each port are separated into
|
||||
different banks
|
||||
* 0: The registers are in the same bank (addresses are sequential)
|
||||
* SEQOP: bit 5; read/write; default = 0
|
||||
* 1: Sequential operation disabled, address pointer does not increment
|
||||
|
@ -80,10 +80,10 @@
|
|||
* notes:
|
||||
* All addresses given for IOCON.BANK = 0, since that's the default value of
|
||||
the bit, and that's what we'll be using.
|
||||
* We want the row pins set as output high (hi-Z) without pull-ups initially,
|
||||
and the column pins set as input with pull-ups. We'll cycle through
|
||||
driving the row pins low and checking the column pins in the update
|
||||
function.
|
||||
* We want the row pins set as output high (hi-Z) without pull-ups
|
||||
initially, and the column pins set as input with pull-ups. We'll cycle
|
||||
through driving the row pins low and checking the column pins in the
|
||||
update function.
|
||||
|
||||
* abbreviations:
|
||||
* IODIR = I/O Direction Register
|
||||
|
|
|
@ -46,8 +46,8 @@
|
|||
* notes:
|
||||
* SCL and SDA: Need external pull-up resistors. Sometimes the Teensy
|
||||
internal pull-ups are enough (see datasheet section 20.5.1), but i think
|
||||
for this project we'll want external ones. The general recommendation for
|
||||
400kHz I²C seems to be 2.2kΩ.
|
||||
for this project we'll want external ones. The general recommendation
|
||||
for 400kHz I²C seems to be 2.2kΩ.
|
||||
|
||||
|
||||
## Notes about Registers
|
||||
|
@ -70,13 +70,13 @@
|
|||
* PD6 (the onboard LED) already has a defined level (low), so there's no
|
||||
reason to set internal pull-up enabled on it. If we do, it will source
|
||||
current to the LED, which is fine, but unnecessary.
|
||||
* We want the row pins 'hi-Z' initially (set as input with pull-up disabled),
|
||||
and the column pins set as input with internal pull-up enabled. We'll
|
||||
cycle through driving the row pins low (setting them as output) and
|
||||
checking the column pins in the update function.
|
||||
* Switching the row pins between hi-Z and drive low (treating them as if
|
||||
they were open drain) seems just as good as, and a little safer than,
|
||||
driving them high when the row's not active.
|
||||
* We want the row pins 'hi-Z' initially (set as input with pull-up
|
||||
disabled), and the column pins set as input with internal pull-up
|
||||
enabled. We'll cycle through driving the row pins low (setting them as
|
||||
output) and checking the column pins in the update function.
|
||||
* Switching the row pins between hi-Z and drive low (treating them as
|
||||
if they were open drain) seems just as good as, and a little safer
|
||||
than, driving them high when the row's not active.
|
||||
|
||||
### PWM on ports OC1(A|B|C) (see datasheet section 14.10)
|
||||
|
||||
|
@ -89,23 +89,23 @@
|
|||
* we want "Compare Output Mode, Fast PWM" to be `0b10`
|
||||
"Clear OCnA/OCnB/OCnC on compare match, set OCnA/OCnB/OCnC at TOP"
|
||||
(see table 14-3)
|
||||
this way higher values of `OCR1(A|B|C)` will mean longer 'on' times for the
|
||||
LEDs (provided they're hooked up to GND; other way around if they're hooked
|
||||
up to Vcc)
|
||||
this way higher values of `OCR1(A|B|C)` will mean longer 'on' times for
|
||||
the LEDs (provided they're hooked up to GND; other way around if they're
|
||||
hooked up to Vcc)
|
||||
* when in a fast PWM mode, set `TCCR1A[7,6,5,4,3,2]` to `1,0,1,0,1,0`
|
||||
* we want "Clock Select Bit Description" to be `0b001`
|
||||
"clkI/O/1 (No prescaling)"
|
||||
(see table 14-6)
|
||||
* set `TCCR1B[2,1,0]` to `0,0,1`
|
||||
* LEDs will be at minimum brightness until OCR1(A|B|C) are changed (since
|
||||
the default value of all the bits in those registers is 0)
|
||||
* LEDs will be at minimum brightness until OCR1(A|B|C) are changed
|
||||
(since the default value of all the bits in those registers is 0)
|
||||
|
||||
* notes: behavior:
|
||||
* The pins source current when on, and sink current when off. They aren't
|
||||
set to high impediance for either.
|
||||
* In Fast PWM mode setting `OCR1(A|B|C)` to `0` does not make the output on
|
||||
`OC1(A|B|C)` constant low; just close. Per the datasheet, this isn't true
|
||||
for every PWM mode.
|
||||
`OC1(A|B|C)` constant low; just close. Per the datasheet, this isn't
|
||||
true for every PWM mode.
|
||||
|
||||
* abbreviations:
|
||||
* OCR = Output Compare Register
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
# makefile for the ergoDOX project
|
||||
#
|
||||
# - .h file dependencies are automatically generated
|
||||
# -
|
||||
#
|
||||
# - This makefile was originally (extensively) modified from the WinAVR
|
||||
# makefile template, mostly by removing stuff. The copy I used was from
|
||||
|
|
Loading…
Reference in New Issue