Full Code of swharden/AVR-projects for AI

master 5fb0daa27358 cached
540 files
16.8 MB
4.4M tokens
1038 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (17,748K chars total). Download the full file to get everything.
Repository: swharden/AVR-projects
Branch: master
Commit: 5fb0daa27358
Files: 540
Total size: 16.8 MB

Directory structure:
gitextract_18dfl17d/

├── .gitignore
├── ATMega328  LEDblink/
│   ├── build_atmega328.bat
│   ├── fuse_atmega328_int_1MHz.bat
│   ├── fuse_atmega328_int_8MHz.bat
│   ├── fuse_atmega328_xtal.bat
│   ├── main.c
│   ├── main.elf
│   └── main.hex
├── ATMega328 2015-01-01 USART serial/
│   ├── AVR Baud Rate Calculator.url
│   ├── readme.md
│   ├── tx only/
│   │   ├── README.md
│   │   ├── build_atmega328.bat
│   │   ├── fuse_atmega328_int_1MHz.bat
│   │   ├── main.c
│   │   ├── main.elf
│   │   └── main.hex
│   ├── tx rs set value/
│   │   ├── build.bat
│   │   ├── fuse_atmega328_int_1MHz.bat
│   │   ├── main.c
│   │   ├── main.elf
│   │   └── main.hex
│   ├── tx rx interrupt/
│   │   ├── build.bat
│   │   ├── fuse_atmega328_int_1MHz.bat
│   │   ├── main.c
│   │   ├── main.elf
│   │   └── main.hex
│   └── tx rx polling/
│       ├── build.bat
│       ├── fuse_atmega328_int_1MHz.bat
│       ├── main.c
│       ├── main.elf
│       └── main.hex
├── ATMega328 2016-09-04 SN74LV8154/
│   ├── README.md
│   ├── build_atmega328.bat
│   ├── cleaner/
│   │   ├── build_atmega328.bat
│   │   ├── fuse_atmega328_int_1MHz.bat
│   │   ├── main.c
│   │   ├── main.elf
│   │   ├── main.hex
│   │   └── main_minimal.c
│   ├── demo.py
│   ├── kicad/
│   │   ├── simple-cache.lib
│   │   ├── simple.bak
│   │   ├── simple.kicad_pcb
│   │   ├── simple.pro
│   │   └── simple.sch
│   ├── main.c
│   ├── main.elf
│   └── main.hex
├── ATMega328 2016-09-07 ramp DVM/
│   ├── README.md
│   ├── build.bat
│   ├── demo data/
│   │   ├── analyze.py
│   │   └── capture.txt
│   ├── kicad/
│   │   ├── quick ADC-cache.lib
│   │   ├── quick ADC.bak
│   │   ├── quick ADC.kicad_pcb
│   │   ├── quick ADC.pro
│   │   └── quick ADC.sch
│   ├── main.c
│   ├── main.elf
│   └── main.hex
├── ATMega328 2016-09-15 CVM/
│   ├── README.md
│   ├── analysis/
│   │   ├── captureWarmup.txt
│   │   └── graph.py
│   ├── build.bat
│   ├── demo.py
│   ├── main.c
│   ├── main.elf
│   └── main.hex
├── ATMega328 2017-02-07 ADC serial LM35/
│   ├── AVR Baud Rate Calculator.url
│   ├── README.md
│   ├── build_atmega328.bat
│   ├── fuse_atmega328_int_1MHz.bat
│   ├── main.c
│   ├── main.elf
│   ├── main.hex
│   ├── main_both.c
│   └── main_simple.c
├── ATMega328 2017-02-08 i2c LM75A thermometer/
│   ├── build_atmega328.bat
│   ├── cmd.cmd
│   ├── fuse_atmega328_int_1MHz.bat
│   ├── i2c_master.c
│   ├── i2c_master.h
│   ├── main.c
│   ├── main_01.c
│   ├── readme.md
│   └── serial_m328.c
├── ATMega328 2017-02-12 crystal turnover inspector/
│   ├── build_atmega328.bat
│   ├── data.csv
│   ├── exp01 - 11.0592/
│   │   ├── data.csv
│   │   └── readme.md
│   ├── exp02 - 10.140 smaller/
│   │   ├── data1.csv
│   │   ├── data2.csv
│   │   └── data3.csv
│   ├── exp03 - longrun/
│   │   └── data3.csv
│   ├── exp04 - 10.140 larger/
│   │   └── data.csv
│   ├── exp05 - attiny2313 internal 8mhz/
│   │   └── data.csv
│   ├── exp06 - attiny2313 external xtal/
│   │   ├── data.csv
│   │   └── datalong.csv
│   ├── exp07 - attiny2313 external xtal allday/
│   │   └── data.csv
│   ├── exp07 - attiny2313 external xtal freezer/
│   │   └── data.csv
│   ├── exp08a - mcu 2x18pf ceramic/
│   │   └── data.csv
│   ├── exp08b - mcu 2x18 and 2x68 ceramic/
│   │   └── data.csv
│   ├── exp08c - mcu 2x48 blue/
│   │   └── data.csv
│   ├── exp08d - mcu 2x20 npo black tip/
│   │   └── data.csv
│   ├── exp09a - mcu colpitts/
│   │   └── data.csv
│   ├── exp09a - mcu colpitts all yellow npo/
│   │   └── data.csv
│   ├── exp10 - aj4vd smt oscillator/
│   │   └── data.csv
│   ├── exp11 - aj4vd smt oscillator/
│   │   └── data.csv
│   ├── exp12 - aj4vd smt oscillator/
│   │   └── data.csv
│   ├── exp13 - xtal only heated/
│   │   └── data.csv
│   ├── fuse_atmega328_int_1MHz.bat
│   ├── i2c_master.c
│   ├── i2c_master.h
│   ├── main.c
│   ├── main.elf
│   ├── main.hex
│   ├── plot_both.py
│   ├── plot_both2.py
│   ├── plot_temp.py
│   └── record_both.py
├── ATMega328 2017-03-19 i2c LCD backpack/
│   ├── main.elf
│   ├── main.hex
│   ├── readme.md
│   ├── schematics/
│   │   └── atmega8_lcdpcf8574_sample.sch
│   └── src/
│       ├── build_atmega328.bat
│       ├── fuse_atmega328_int_8MHz.bat
│       ├── i2chw/
│       │   ├── i2cmaster.h
│       │   └── twimaster.c
│       ├── lcdpcf8574/
│       │   ├── lcdpcf8574.c
│       │   └── lcdpcf8574.h
│       ├── main.c
│       ├── main.elf
│       ├── main.hex
│       ├── pcf8574/
│       │   ├── pcf8574.c
│       │   └── pcf8574.h
│       └── uart/
│           ├── uart.c
│           └── uart.h
├── ATMega328 2017-03-19 i2c LCD pressure sensor/
│   ├── notes.txt
│   ├── readme.md
│   ├── schematics/
│   │   └── atmega8_lcdpcf8574_sample.sch
│   ├── src_i2cLCD_01_works/
│   │   ├── build_atmega328.bat
│   │   ├── fuse_atmega328_int_8MHz.bat
│   │   ├── i2c2/
│   │   │   ├── i2c2_master.c
│   │   │   └── i2c2_master.h
│   │   ├── i2chw/
│   │   │   ├── i2cmaster.h
│   │   │   └── twimaster.c
│   │   ├── lcdpcf8574/
│   │   │   ├── lcdpcf8574.c
│   │   │   └── lcdpcf8574.h
│   │   ├── main.c
│   │   ├── main.elf
│   │   ├── main.hex
│   │   ├── pcf8574/
│   │   │   ├── pcf8574.c
│   │   │   └── pcf8574.h
│   │   └── uart/
│   │       ├── uart.c
│   │       └── uart.h
│   ├── src_i2cLCD_02_clean/
│   │   ├── build_atmega328.bat
│   │   ├── calibration/
│   │   │   └── calibrate.py
│   │   ├── fuse_atmega328_int_8MHz.bat
│   │   ├── i2c2/
│   │   │   ├── i2c2_master.c
│   │   │   └── i2c2_master.h
│   │   ├── i2chw/
│   │   │   ├── i2cmaster.h
│   │   │   └── twimaster.c
│   │   ├── lcdpcf8574/
│   │   │   ├── lcdpcf8574.c
│   │   │   └── lcdpcf8574.h
│   │   ├── main.c
│   │   ├── main.elf
│   │   ├── main.hex
│   │   ├── pcf8574/
│   │   │   ├── pcf8574.c
│   │   │   └── pcf8574.h
│   │   └── uart/
│   │       ├── uart.c
│   │       └── uart.h
│   └── src_serial/
│       ├── build_atmega328.bat
│       ├── i2c_master.c
│       ├── i2c_master.h
│       ├── main.c
│       ├── main.elf
│       └── main.hex
├── ATMega328 2017-08-14 action potential generator/
│   ├── build_atmega328.bat
│   ├── fuse_atmega328_int_8MHz.bat
│   ├── ltspice/
│   │   └── idea-1.asc
│   ├── main.c
│   ├── main.elf
│   ├── main.hex
│   └── readme.md
├── ATMega328 2018-02-25 16-bit pwm/
│   └── readme.md
├── ATMega328 2018-02-25 nrf24L01/
│   ├── readme.md
│   └── src/
│       ├── build_rx.bat
│       ├── build_tx.bat
│       ├── fuse_atmega328_int_8MHz.bat
│       ├── kehribar-nrf24L01_plus- Portable nrf24L01+ library with auto acknowledgement and auto retransmission support-.url
│       ├── main.elf
│       ├── main.hex
│       ├── main_rx.c
│       ├── main_tx.c
│       ├── nRF24L01.h
│       ├── nrf24.c
│       ├── nrf24.h
│       └── radioPinFunctions.c
├── ATMega328 2018-04-22 MAX7219 LED matrix/
│   ├── build_atmega328.bat
│   ├── fuse_atmega328_int_8MHz.bat
│   ├── fuse_atmega328_xtal.bat
│   ├── main.c
│   ├── main.elf
│   ├── main.hex
│   ├── main_01_works.c
│   ├── main_02_matrix.c
│   ├── main_03_scott.c
│   └── readme.md
├── ATMega328 2019-06-20 TTL laser controller 2/
│   ├── README.md
│   ├── main.c
│   ├── main.elf
│   ├── main.hex
│   ├── program.bat
│   └── setFuses.bat
├── ATMega328 2019-07-05 USB counter/
│   └── readme.md
├── ATMega328 2019-08-04 max7219 7segment display/
│   ├── compile.bat
│   ├── display-max7219-7seg.c
│   ├── main.c
│   ├── main.elf
│   ├── main.hex
│   ├── program.bat
│   └── readme.md
├── ATMega48 2013-05-14 SHRFP monitor/
│   ├── GUI/
│   │   ├── SH-RFP-monitor.py
│   │   ├── SwhRecorder.py
│   │   ├── SwhRecorder2.py
│   │   ├── SwhRfpDecoder.py
│   │   ├── theory ACTION.py
│   │   ├── theory.py
│   │   ├── ui.py
│   │   ├── ui_plot.py
│   │   └── ui_plot.ui
│   ├── MCU code/
│   │   └── main.c
│   └── readme.md
├── ATMega8 AD9850 DDS receiver/
│   ├── old/
│   │   ├── 03 mega8 DDS/
│   │   │   ├── _ mega8 EXT.cmd
│   │   │   ├── main.c
│   │   │   ├── main.elf
│   │   │   └── main.hex
│   │   ├── 08 multiband qrss dds/
│   │   │   ├── _ mega8 8mhz RC.cmd
│   │   │   ├── main.c
│   │   │   ├── main.elf
│   │   │   └── main.hex
│   │   ├── 09 temp controlled DDS/
│   │   │   ├── _ mega8 1mhz RC.cmd
│   │   │   ├── _ mega8 8mhz RC.cmd
│   │   │   ├── main.c
│   │   │   ├── main.elf
│   │   │   └── main.hex
│   │   └── readme.md
│   └── readme.md
├── ATTiny2313 2015-01-01 USART serial/
│   ├── build_attiny2313.bat
│   ├── fuse_attiny2313_EXT_XTAL.bat
│   ├── fuse_attiny2313_INT_1MHz.bat
│   ├── fuse_attiny2313_INT_8MHz.bat
│   ├── main.c
│   ├── main.elf
│   ├── main.hex
│   └── readme.md
├── ATTiny2313 2016-08-14 clock divider/
│   ├── README.md
│   ├── build_attiny2313.bat
│   ├── fuse_attiny2313_EXT_XTAL.bat
│   ├── main.c
│   ├── main.elf
│   ├── main.hex
│   └── simple/
│       ├── build_attiny2313.bat
│       ├── fuse_attiny2313_EXT_XTAL.bat
│       ├── main.c
│       ├── main.elf
│       └── main.hex
├── ATTiny2313 2017-02-01 PWM/
│   ├── build_attiny2313.bat
│   ├── fuse_attiny2313_INT_1MHz.bat
│   ├── main.c
│   ├── main.elf
│   └── main.hex
├── ATTiny2313 2017-02-02 rotary encoder/
│   ├── build_attiny2313.bat
│   ├── fuse_attiny2313_INT_8MHz.bat
│   ├── main.c
│   ├── main.elf
│   ├── main.hex
│   ├── main_v1_polling.c
│   └── readme.md
├── ATTiny2313 2017-02-03 pin change interrupt/
│   ├── build_attiny2313.bat
│   ├── fuse_attiny2313_INT_8MHz.bat
│   └── main.c
├── ATTiny2313 2017-02-04 QRSS VFO controller/
│   ├── build_attiny2313.bat
│   ├── fuse_attiny2313_INT_8MHz.bat
│   ├── main.c
│   ├── main.elf
│   └── main.hex
├── ATTiny2313 2017-07-22 shutter controller/
│   ├── build_attiny2313.bat
│   ├── fuse_attiny2313_INT_8MHz.bat
│   ├── main.c
│   ├── main.elf
│   └── main.hex
├── ATTiny2313 2017-08-02 stimulus generator/
│   ├── build_attiny2313.bat
│   ├── fuse_attiny2313_EXT_XTAL.bat
│   ├── main.c
│   ├── main.elf
│   └── main.hex
├── ATTiny2313 2018-02-25 ADC/
│   └── readme.md
├── ATTiny2313 2018-02-25 button interrupt/
│   └── readme.md
├── ATTiny2313 LEDblink/
│   ├── build_attiny2313.bat
│   ├── fuse_attiny2313_EXT_XTAL CKOUT.bat
│   ├── fuse_attiny2313_EXT_XTAL.bat
│   ├── fuse_attiny2313_INT_1MHz.bat
│   ├── fuse_attiny2313_INT_8MHz CKOUT.bat
│   ├── fuse_attiny2313_INT_8MHz.bat
│   ├── main.c
│   ├── main.elf
│   └── main.hex
├── ATTiny826 Clock/
│   ├── ATTiny826 Clock and Timer/
│   │   ├── ATTiny826 Clock and Timer.componentinfo.xml
│   │   ├── ATTiny826 Clock and Timer.cproj
│   │   └── main.c
│   └── ATTiny826 Clock and Timer.atsln
├── ATTiny826 LED blink/
│   ├── LedBlink/
│   │   ├── LedBlink/
│   │   │   ├── LedBlink.componentinfo.xml
│   │   │   ├── LedBlink.cproj
│   │   │   └── main.c
│   │   └── LedBlink.atsln
│   └── readme.md
├── ATTiny826 PWM/
│   └── readme.md
├── ATTiny826 Timer 1pps/
│   ├── ATTiny826 Clock and Timer/
│   │   ├── ATTiny826 Clock and Timer.componentinfo.xml
│   │   ├── ATTiny826 Clock and Timer.cproj
│   │   └── main.c
│   └── ATTiny826 Clock and Timer.atsln
├── ATTiny826 counter/
│   ├── ATTiny826 counter/
│   │   ├── ATTiny826 counter.componentinfo.xml
│   │   ├── ATTiny826 counter.cproj
│   │   ├── main.c
│   │   └── serial.h
│   └── ATTiny826 counter.atsln
├── ATTiny826 serial/
│   ├── ATTiny826 serial/
│   │   ├── ATTiny826 serial.componentinfo.xml
│   │   ├── ATTiny826 serial.cproj
│   │   └── main.c
│   └── ATTiny826 serial.atsln
├── ATTiny826 speech/
│   ├── SpeechTest1.atsln
│   ├── SpeechTest1.componentinfo.xml
│   ├── SpeechTest1.cproj
│   ├── main.c
│   └── readme.md
├── ATTiny85 2016-07-24 TTL laser controller/
│   ├── KiCad/
│   │   ├── 16.07.26.laserPulse-cache.lib
│   │   ├── 16.07.26.laserPulse.bak
│   │   ├── 16.07.26.laserPulse.kicad_pcb
│   │   ├── 16.07.26.laserPulse.pro
│   │   └── 16.07.26.laserPulse.sch
│   ├── README.md
│   ├── burn.cmd
│   ├── burn2.bat
│   ├── fuse_attiny85_crystal.cmd
│   ├── main.c
│   ├── main.elf
│   ├── main.hex
│   └── up.py
├── ATTiny85 2016-07-31 frequency generator/
│   ├── README.md
│   ├── burn.cmd
│   └── main.c
├── ATTiny85 2016-12-30 PWM/
│   ├── fuseINT8.bat
│   ├── main.c
│   ├── main_squares_triangles.c
│   ├── program.bat
│   └── readme.md
├── ATTiny85 2017-02-05 ADC/
│   ├── fuseINT8.bat
│   ├── main.c
│   ├── program.bat
│   └── readme.md
├── ATTiny85 2017-08-19 action potential generator/
│   ├── fuseINT8.bat
│   ├── main.c
│   ├── main.elf
│   ├── main.hex
│   ├── program.bat
│   └── readme.md
├── ATTiny85 2017-09-01 PS4 controller auto run auto fire/
│   ├── fuseINT8.bat
│   ├── main.c
│   ├── main.elf
│   ├── main.hex
│   ├── program.bat
│   └── readme.md
├── ATTiny85 LEDblink/
│   ├── fuseINT8.bat
│   ├── main.c
│   ├── main.elf
│   ├── main.hex
│   └── program.bat
├── AVR64DD32/
│   └── readme.md
├── AVR64DD32 7seg multiplex/
│   ├── GccApplication1.atsln
│   ├── GccApplication1.componentinfo.xml
│   ├── GccApplication1.cproj
│   └── main.c
├── AVR64DD32 LEDblink/
│   ├── LEDblink/
│   │   ├── LEDblink.atsln
│   │   ├── LEDblink.componentinfo.xml
│   │   ├── LEDblink.cproj
│   │   └── main.c
│   └── readme.md
├── AVR64DD32 SPI audio/
│   ├── SpiQuickstart.atsln
│   ├── SpiQuickstart.componentinfo.xml
│   ├── SpiQuickstart.cproj
│   └── main.c
├── AVR64DD32 adc/
│   ├── GccApplication1.atsln
│   ├── GccApplication1.componentinfo.xml
│   ├── GccApplication1.cproj
│   └── main.c
├── AVR64DD32 audio music/
│   ├── SpeechTest2.atsln
│   ├── SpeechTest2.componentinfo.xml
│   ├── SpeechTest2.cproj
│   ├── audio.h
│   ├── main.c
│   └── readme.md
├── AVR64DD32 audio speech/
│   ├── SpeechTest2.atsln
│   ├── SpeechTest2.componentinfo.xml
│   ├── SpeechTest2.cproj
│   ├── audio.h
│   ├── main.c
│   └── readme.md
├── AVR64DD32 comparator/
│   ├── AVR64DD32 serial.atsln
│   ├── AVR64DD32 serial.componentinfo.xml
│   ├── AVR64DD32 serial.cproj
│   └── main.c
├── AVR64DD32 counter/
│   ├── AVR64DD32 serial.atsln
│   ├── AVR64DD32 serial.componentinfo.xml
│   ├── AVR64DD32 serial.cproj
│   ├── Serial.h
│   └── main.c
├── AVR64DD32 serial/
│   ├── AVR64DD32 serial.atsln
│   ├── AVR64DD32 serial.componentinfo.xml
│   ├── AVR64DD32 serial.cproj
│   └── main.c
├── AVR64DD32 talking counter/
│   ├── AVR64DD32 serial.atsln
│   ├── AVR64DD32 serial.componentinfo.xml
│   ├── AVR64DD32 serial.cproj
│   ├── NumberSpeaker.h
│   ├── NumberSpeakerAudio.h
│   ├── Serial.h
│   └── main.c
├── Analog action potential generator/
│   ├── data/
│   │   └── analyze.py
│   └── ltspice/
│       ├── circuit.asc
│       ├── circuit.log
│       ├── circuit.op.raw
│       └── circuit.raw
├── Arduino/
│   └── readme.md
├── Arduino ADC/
│   └── Arduino ADC.ino
├── Arduino ADC MCP3201/
│   └── Arduino ADC MCP3201.ino
├── Arduino ADS1115/
│   └── Arduino ADS1115.ino
├── Arduino BMP280 pressure sensor/
│   ├── bmp280/
│   │   ├── amazon.txt
│   │   └── bmp280.ino
│   └── readme.md
├── Arduino HX710B pressure sensor/
│   ├── hx710b/
│   │   ├── .theia/
│   │   │   └── launch.json
│   │   └── hx710b.ino
│   └── readme.md
├── Arduino LED blink/
│   └── led-blink.ino
├── Arduino LM75A/
│   └── Arduino LM75A.ino
├── Arduino PWM/
│   └── readme.md
├── Arduino SI5351 DDS/
│   └── dds/
│       └── dds/
│           ├── dds.ino
│           ├── si5351.cpp
│           └── si5351.h
├── Arduino SPI audio/
│   ├── readme.md
│   └── test1/
│       └── test1.ino
├── Arduino speech/
│   ├── readme.md
│   └── test1/
│       ├── speech.h
│       └── test1.ino
├── BusPirate/
│   ├── demo.py
│   └── readme.md
├── BusPirate 2017-02-04 i2c ms5661 pressure/
│   ├── busPirate_ms5661.py
│   ├── buspirate.py
│   ├── readme.md
│   ├── scratch_record_i2c_pressure.py
│   └── scratch_record_i2c_pressure_plot.py
├── BusPirate 2017-02-04 i2c temperature/
│   ├── busPirate_LM75A.py
│   ├── file logging/
│   │   ├── data.csv
│   │   ├── plot.py
│   │   └── record.py
│   └── readme.md
├── BusPirate 2017-03-11 crystal oven/
│   ├── busPirate_LM75A.py
│   ├── data.csv
│   └── plot.py
├── ESP8266/
│   └── readme.md
├── FT232H SPI ADC/
│   ├── UsbAdc/
│   │   ├── FTD2XX_NET/
│   │   │   ├── CommunicatorBase.cs
│   │   │   ├── FTD2XX_NET.cs
│   │   │   ├── SerialCommunicator.cs
│   │   │   ├── SpiCommunicator.cs
│   │   │   ├── TwiCommunicator.cs
│   │   │   └── readme.md
│   │   ├── Form1.Designer.cs
│   │   ├── Form1.cs
│   │   ├── Form1.resx
│   │   ├── Program.cs
│   │   ├── UsbAdc.csproj
│   │   ├── UsbAdc.csproj.user
│   │   ├── UsbAdc.sln
│   │   └── obj/
│   │       ├── UsbAdc.csproj.nuget.dgspec.json
│   │       ├── UsbAdc.csproj.nuget.g.props
│   │       ├── UsbAdc.csproj.nuget.g.targets
│   │       ├── project.assets.json
│   │       └── project.nuget.cache
│   └── readme.md
├── FTDI 2017-04-29 bitbang max7219 7seg/
│   ├── FT232H-spi7seg.cs
│   └── readme.md
├── FTDI 2018-05-30 bit bang/
│   ├── 00-serial.cs
│   ├── 01-serial.cs
│   ├── 02-state-LEDs.cs
│   ├── 03-state-LEDblink.cs
│   ├── 04-state-send.cs
│   ├── 05-stress-test.cs
│   ├── 06-bit-bang-spi.cs
│   ├── 07-AD9850-single-frequency.cs
│   ├── 08-AD9850-sweep.cs.cs
│   └── readme.md
├── FTDI 2018-06-03 ftdiDDS/
│   ├── binary/
│   │   └── demos/
│   │       ├── demo_help.bat
│   │       ├── demo_hz_33222111.bat
│   │       ├── demo_list.bat
│   │       ├── demo_mhz_10.bat
│   │       ├── demo_mhz_21.987654.bat
│   │       ├── demo_none.bat
│   │       └── demo_sweep.bat
│   ├── readme.md
│   └── source/
│       ├── FTDI-video-demo/
│       │   ├── App.config
│       │   ├── FTD2XX_NET.XML
│       │   ├── FTDI-video-demo.csproj
│       │   ├── Program.cs
│       │   ├── Properties/
│       │   │   └── AssemblyInfo.cs
│       │   └── packages.config
│       ├── FTDI-video-demo.sln
│       └── packages/
│           └── FTD2XX.Net.1.0.14/
│               ├── FTD2XX.Net.1.0.14.nupkg
│               └── content/
│                   └── FTD2XX_NET.XML
├── LICENSE
├── NodeMCU-BMP8266/
│   ├── NodeMCU-BMP8266.ino
│   └── readme.md
├── NodeMCU-weather-station/
│   ├── NodeMCU-weather-station.ino
│   └── readme.md
├── QRSS TX - clock tx/
│   ├── PCB/
│   │   ├── fp-info-cache
│   │   ├── qrss-clock-tx-cache.lib
│   │   ├── qrss-clock-tx.bak
│   │   ├── qrss-clock-tx.kicad_pcb
│   │   ├── qrss-clock-tx.kicad_pcb-bak
│   │   ├── qrss-clock-tx.net
│   │   ├── qrss-clock-tx.pro
│   │   └── qrss-clock-tx.sch
│   ├── README.md
│   ├── ideas/
│   │   └── readme.md
│   └── ppv-to-power-calculator.xlsx
├── README.md
├── functions/
│   ├── delays.md
│   └── readme.md
├── tips/
│   ├── 2016-08-14 CKOUT noise/
│   │   └── README.md
│   └── 2017-02-04 thermistor calculations/
│       └── demo.py
└── uBlox Neo-6M/
    └── readme.md

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
.vs
Debug
Release

================================================
FILE: ATMega328  LEDblink/build_atmega328.bat
================================================
@echo off
del *.elf
del *.hex
avr-gcc -mmcu=atmega328p -Wall -Os -o main.elf main.c -w
avr-objcopy -j .text -j .data -O ihex main.elf main.hex
pause
avrdude -c usbtiny -p m328p -U flash:w:"main.hex":a 
pause

================================================
FILE: ATMega328  LEDblink/fuse_atmega328_int_1MHz.bat
================================================
@echo off
avrdude -c usbtiny -p m328p -U lfuse:w:0x62:m -U hfuse:w:0xd9:m
pause

================================================
FILE: ATMega328  LEDblink/fuse_atmega328_int_8MHz.bat
================================================
@echo off
avrdude -c usbtiny -p m328p -U lfuse:w:0xe2:m -U hfuse:w:0xd9:m
pause

================================================
FILE: ATMega328  LEDblink/fuse_atmega328_xtal.bat
================================================
@echo off
avrdude -c usbtiny -p m328p -U lfuse:w:0xf7:m -U hfuse:w:0xd9:m
pause

================================================
FILE: ATMega328  LEDblink/main.c
================================================
#define F_CPU 11059200
#include <avr/io.h>
#include <util/delay.h>

int main(void){
	DDRB|=(1<<PB1); // set PD6 (pin 11) output
	for(;;){
		PORTB|=(1<<PB1); // set PD
		_delay_ms(200); // wait
		PORTB&=~(1<<PB1);// set PD6 low
		_delay_ms(800); // wait
	}
}


================================================
FILE: ATMega328  LEDblink/main.hex
================================================
:100000000C9434000C943E000C943E000C943E0082
:100010000C943E000C943E000C943E000C943E0068
:100020000C943E000C943E000C943E000C943E0058
:100030000C943E000C943E000C943E000C943E0048
:100040000C943E000C943E000C943E000C943E0038
:100050000C943E000C943E000C943E000C943E0028
:100060000C943E000C943E0011241FBECFEFD8E04C
:10007000DEBFCDBF0E9440000C9454000C940000E1
:10008000219A24E131E0299A80ED97E0F901319736
:10009000F1F70197D9F7299880E49FE1F9013197A9
:0C00A000F1F70197D9F7EFCFF894FFCFEC
:00000001FF


================================================
FILE: ATMega328 2015-01-01 USART serial/AVR Baud Rate Calculator.url
================================================
[InternetShortcut]
URL=http://wormfood.net/avrbaudcalc.php


================================================
FILE: ATMega328 2015-01-01 USART serial/readme.md
================================================
# USART (serial) communication with ATMega328

### TX only
**[This example](tx%20only/main.c) shows how to send data one way (AVR -> PC)**
```C
void serial_send(unsigned char data){
	// send a single character via USART
	while(!(UCSR0A&(1<<UDRE0))){}; //wait while previous byte is completed
	UDR0 = data; // Transmit data
}
```

### TX + RX (polling method)
**[This example](tx%20rx%20polling/main.c) shows how bidirectionally exchange data (AVR <-> PC) using a polling method.** This is typically less favorable than the interrupt method because the processing of the chip gets to a point where it waits (perhaps forever) until the PC sends data.
```C
char serial_read()
{
   // wait until single character is read via USART
   while(!(UCSR0A & (1<<RXC0))){} // wait until data comes
   return UDR0; // return the character
}
```

### TX + RX (polling interrupt method)
**[This example](tx%20rx%20interrupt/main.c) shows how bidirectionally exchange data (AVR <-> PC) using an interrupt method.** This is typically the best method because the MCU can run continuously doing its own thing, and the PC _interrupts_ the microcontroller when USART data begins to come in.
```C
volatile char lastLetter; // make a variable that can be accessed
ISR(USART_RX_vect){
    lastLetter=UDR0;  // quickly do something with this before it changes
}
```

## Hardware
description | picture
---|---
I typically use an FT232 breakboard board to capture serial data from my microcontroller on my computer. These breakoutboards can be [purchased from SparkFun](https://www.sparkfun.com/products/12731) (which are always high quality and genuine) or [from eBay](http://www.ebay.com/sch/ft232+breakout) (cheaper, but variable quality, and questionable chips). | ![](../ATMega328%202017-02-08%20i2c%20LM75A%20thermometer/circuit.jpg)
On the software side, I typically use [RealTerm](https://realterm.sourceforge.io/). It's simple, easy, and allows file logging. If you configure your microcontroller to output CSV format, you can save directly as CSV so files can be opened in Excel. Nice!|![](../ATMega328%202017-02-08%20i2c%20LM75A%20thermometer/demo.png)



================================================
FILE: ATMega328 2015-01-01 USART serial/tx only/README.md
================================================
This is a barebones project to send data (even pretty ASCII formatted numbers) to a PC via the serial port.

![](screenshot.jpg)


================================================
FILE: ATMega328 2015-01-01 USART serial/tx only/build_atmega328.bat
================================================
@echo off
del *.elf
del *.hex
avr-gcc -mmcu=atmega328p -Wall -Os -o main.elf main.c -w
avr-objcopy -j .text -j .data -O ihex main.elf main.hex
pause
avrdude -c usbtiny -p m328p -U flash:w:"main.hex":a 
pause

================================================
FILE: ATMega328 2015-01-01 USART serial/tx only/fuse_atmega328_int_1MHz.bat
================================================
@echo off
avrdude -c usbtiny -p m328p -U lfuse:w:0x62:m -U hfuse:w:0xd9:m
pause

================================================
FILE: ATMega328 2015-01-01 USART serial/tx only/main.c
================================================
#define F_CPU 1000000ul
#include <avr/io.h>
#include <util/delay.h>

#define USART_BAUDRATE 4800
#define UBRR_VALUE (((F_CPU/(USART_BAUDRATE*16UL)))-1)

void serial_init(){
	// initialize USART (must call this before using it)
	UBRR0=UBRR_VALUE; // set baud rate
	UCSR0B|=(1<<TXEN0); //enable transmission only
	UCSR0C|=(1<<UCSZ01)|(1<<UCSZ01); // no parity, 1 stop bit, 8-bit data
}

void serial_send(unsigned char data){
	// send a single character via USART
	while(!(UCSR0A&(1<<UDRE0))){}; //wait while previous byte is completed
	UDR0 = data; // Transmit data
}

void serial_break(){
	serial_send(10); // new line 
	serial_send(13); // carriage return
}
void serial_comma(){
	serial_send(','); // comma
	serial_send(' '); // space
}

void serial_number(long val){ 
	// send a number as ASCII text
	char preVal=' ';
	long divby=100000000; // change by dataType
	while (divby>=1){
		serial_send('0'+val/divby);
		val-=(val/divby)*divby;
		divby/=10;
	}
}

int main(void){
	serial_init();
	int i;
	for(;;){
		for(i='A';i<='Z';i++){serial_send(i);} // send the alphabet
		serial_break();
		
		serial_number(10140000+123); // send a big number
		serial_break();
		
		_delay_ms(1000); // wait a while
	}	
}

================================================
FILE: ATMega328 2015-01-01 USART serial/tx only/main.hex
================================================
:100000000C9434000C943E000C943E000C943E0082
:100010000C943E000C943E000C943E000C943E0068
:100020000C943E000C943E000C943E000C943E0058
:100030000C943E000C943E000C943E000C943E0048
:100040000C943E000C943E000C943E000C943E0038
:100050000C943E000C943E000C943E000C943E0028
:100060000C943E000C943E0011241FBECFEFD8E04C
:10007000DEBFCDBF0E94CD000C9440010C94000067
:100080008CE090E09093C5008093C400E1ECF0E038
:10009000808188608083E2ECF0E0808184608083EE
:1000A0000895982F8091C00085FFFCCF9093C600E3
:1000B00008958091C00085FFFCCF8AE08093C60040
:1000C0008091C00085FFFCCF8DE08093C60008952D
:1000D0008091C00085FFFCCF8CE28093C6008091A8
:1000E000C00085FFFCCF80E28093C60008956F9228
:1000F0007F928F929F92AF92BF92CF92DF92EF92B8
:10010000FF920F931F93CF93DF935B016C01E12C60
:1001100081EEF82E85EF082F85E0182FC0E0D0E0A3
:100120008091C00085FFFCCFB501C601A8019701F1
:100130000E940301205D2093C600C801B7012AE098
:1001400030E040E050E00E940301922E832E742E96
:10015000652E2196C930D10589F0B501C601A801E7
:1001600097010E9403015B016C01292D382D472D59
:10017000562DC901DA017C018D01D2CFDF91CF91DB
:100180001F910F91FF90EF90DF90CF90BF90AF90B5
:100190009F908F907F906F900895CF93DF938CE026
:1001A00090E09093C5008093C4008091C100886066
:1001B0008093C1008091C20084608093C20021E4DA
:1001C00030E0C9E1D0E008C08091C00085FFFCCFDD
:1001D0002093C6002F5F3F4F2B353105ACF30E94B3
:1001E00059006BED79EB8AE990E00E9477000E945C
:1001F000590080E197E2FE013197F1F70197D9F7B5
:1002000021E430E0E9CF97FB092E05260ED057FDFB
:1002100004D014D00AD0001C38F450954095309585
:1002200021953F4F4F4F5F4F0895F6F7909580957A
:10023000709561957F4F8F4F9F4F0895A1E21A2EC1
:10024000AA1BBB1BFD010DC0AA1FBB1FEE1FFF1F7A
:10025000A217B307E407F50720F0A21BB30BE40BCA
:10026000F50B661F771F881F991F1A9469F7609511
:100270007095809590959B01AC01BD01CF010895CB
:04028000F894FFCF20
:00000001FF


================================================
FILE: ATMega328 2015-01-01 USART serial/tx rs set value/build.bat
================================================
@echo off
del *.elf
del *.hex
avr-gcc -mmcu=atmega328p -Wall -Os -o main.elf main.c -w
avr-objcopy -j .text -j .data -O ihex main.elf main.hex
pause
avrdude -c usbtiny -p m328p -U flash:w:"main.hex":a 
pause


================================================
FILE: ATMega328 2015-01-01 USART serial/tx rs set value/fuse_atmega328_int_1MHz.bat
================================================
@echo off
avrdude -c usbtiny -p m328p -U lfuse:w:0x62:m -U hfuse:w:0xd9:m
pause

================================================
FILE: ATMega328 2015-01-01 USART serial/tx rs set value/main.c
================================================
#define F_CPU 1000000ul
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>

#define USART_BAUDRATE 4800
#define UBRR_VALUE (((F_CPU/(USART_BAUDRATE*16UL)))-1)

#define inputBufferLength 20 // number of characters the input buffer can be
volatile char input[inputBufferLength]; // input buffer

volatile int value=1234; // this will be changed based on terminal commands

// serial stuff

void serial_init(){
	// initialize USART (must call this before using it)
	UBRR0=UBRR_VALUE; // set baud rate
	UCSR0B|=(1<<TXEN0); //enable TX
	UCSR0B|=(1<<RXEN0); //enable RX
	UCSR0B|=(1<<RXCIE0); //RX complete interrupt
	UCSR0C|=(1<<UCSZ01)|(1<<UCSZ01); // no parity, 1 stop bit, 8-bit data
}

void serial_send(unsigned char data){
	// send a single character via USART
	while(!(UCSR0A&(1<<UDRE0))){}; //wait while previous byte is completed
	UDR0 = data; // Transmit data
}

void serial_break(){
	serial_send(10); // new line 
	serial_send(13); // carriage return
}

void serial_long(long val){
	// send a number as ASCII text
	long divby=100000000;
	while (divby>=1){
		serial_send('0'+val/divby);
		val-=(val/divby)*divby;
		divby/=10;
	}
}

void serial_int(int val){
	// send a number as ASCII text
	int divby=1000;
	while (divby>=1){
		serial_send('0'+val/divby);
		val-=(val/divby)*divby;
		divby/=10;
	}
}

void serial_string(const char* s){
	// send a string of ASCII text
	while(*s){serial_send(*s++);}
}

// handle input buffer

ISR(USART_RX_vect){
	// you MUST read UDR0 inside this
	char new=UDR0;
	if (new=='\r'){
		input_leftShift();
		input_process();
	} else if (new=='\n'){
		// pass
	} else {
		input_add(new);
		serial_send(new);
	}
}

void input_add(char new){
	// add a new character to the input buffer
	char i;
	for(i=0;i<inputBufferLength-1;i++){
		input[i]=input[i+1];
	}
	input[inputBufferLength-1]=new;
}

void input_leftShift(){
	// remove all null values preceeding text
	char firstPos=0;
	char i;
	for(i=0;i<inputBufferLength;i++){
		if (input[i]>0){
			firstPos=i;
			break;
		}
	}
	for(i=0;i<inputBufferLength;i++){
		if (i>inputBufferLength-firstPos){
			input[i]=0;
		} else {
			input[i]=input[i+firstPos];
		}
	}
}

void input_reset(){
	// fill input array with null values
	char i;
	for(i=0;i<inputBufferLength;i++){
		input[i]=0;
	}
	serial_break();
	serial_string("listening:");
}

void input_process(){
	// display the contents of the input buffer 
	char i;
	serial_break();
	serial_string("captured:");
	for(i=0;i<inputBufferLength;i++){
		serial_send(input[i]);
	}
	serial_break();
	input_reset();
}

int main(void){	
	input_reset();
	serial_init();	
	sei();
	for(;;){
		//_delay_ms(1000);
		//input_show();
	}
}

================================================
FILE: ATMega328 2015-01-01 USART serial/tx rs set value/main.hex
================================================
:100000000C9434000C9451000C9451000C94510049
:100010000C9451000C9451000C9451000C9451001C
:100020000C9451000C9451000C9451000C9451000C
:100030000C9451000C9451000C9451000C945100FC
:100040000C9451000C9451000C9482010C945100BA
:100050000C9451000C9451000C9451000C945100DC
:100060000C9451000C94510011241FBECFEFD8E026
:10007000DEBFCDBF11E0A0E0B1E0E2E5F4E002C0F8
:1000800005900D92A831B107D9F711E0A8E1B1E0D0
:1000900001C01D92AC32B107E1F70E94BD010C9482
:1000A00027020C9400008CE090E09093C5008093B0
:1000B000C400E1ECF0E08081886080838081806111
:1000C0008083808180688083E2ECF0E080818460BE
:1000D00080830895982F8091C00085FFFCCF909376
:1000E000C60008958091C00085FFFCCF8AE0809310
:1000F000C6008091C00085FFFCCF8DE08093C600D4
:1001000008956F927F928F929F92AF92BF92CF92FB
:10011000DF92EF92FF920F931F93CF93DF935B01D8
:100120006C01E12C81EEF82E85EF082F85E0182F69
:10013000C0E0D0E08091C00085FFFCCFB501C601D2
:10014000A80197010E94D601205D2093C600C80136
:10015000B7012AE030E040E050E00E94D601922E44
:10016000832E742E652E2196C930D10589F0B501F4
:10017000C601A80197010E94D6015B016C01292DDF
:10018000382D472D562DC901DA017C018D01D2CFC2
:10019000DF91CF911F910F91FF90EF90DF90CF9063
:1001A000BF90AF909F908F907F906F900895FF9237
:1001B0000F931F93182F492F28EE33E0E0E0F0E073
:1001C0008091C00085FFFCCF812F942FB9010E9440
:1001D000C301605D6093C600C9016AE070E00E94DF
:1001E000C301062FF72E3196E430F10559F0812F27
:1001F000942FB9010E94C301182F492F802F9F2DE2
:100200009C01DECF1F910F91FF900895FC0107C064
:100210008091C00085FFFCCF31969093C6009081FD
:100220009923B1F70895982F20E030E0F9012F5F6E
:100230003F4FD901A85EBE4F8C91E85EFE4F808390
:100240002331310599F790932B01089520E030E098
:10025000F901E85EFE4F8081181614F4E22F06C003
:100260002F5F3F4F2431310599F7E0E020E030E087
:100270006E2F772767FD709544E150E0461B570BC2
:10028000D901A85EBE4F4217530714F41C9207C051
:10029000F901E60FF71FE85EFE4F80818C932F5F18
:1002A0003F4F2431310561F7089580E090E0FC0173
:1002B000E85EFE4F1082019684319105C1F70E94DD
:1002C000720080E091E00E94060108950E94720091
:1002D0008BE091E00E94060120E030E0F901E85E49
:1002E000FE4FE0818091C00085FFFCCFE093C60007
:1002F0002F5F3F4F2431310589F70E9472000E9421
:10030000550108951F920F920FB60F9211241F935B
:100310002F933F934F935F936F937F938F939F930D
:10032000AF93BF93EF93FF931091C6001D3029F454
:100330000E9426010E9466010EC01A3061F0812FD2
:10034000992787FD90950E9413018091C00085FF39
:10035000FCCF1093C600FF91EF91BF91AF919F9199
:100360008F917F916F915F914F913F912F911F914D
:100370000F900FBE0F901F9018950E9455010E947C
:1003800053007894FFCF97FB092E07260AD077FDFC
:1003900004D027D006D000201AF4709561957F4FC5
:1003A0000895F6F7909581959F4F089597FB092E34
:1003B00005260ED057FD04D028D00AD0001C38F4F2
:1003C00050954095309521953F4F4F4F5F4F089581
:1003D000F6F790958095709561957F4F8F4F9F4F61
:1003E0000895AA1BBB1B51E107C0AA1FBB1FA6177C
:1003F000B70710F0A61BB70B881F991F5A95A9F7CE
:1004000080959095BC01CD010895A1E21A2EAA1BFA
:10041000BB1BFD010DC0AA1FBB1FEE1FFF1FA217B4
:10042000B307E407F50720F0A21BB30BE40BF50BB1
:10043000661F771F881F991F1A9469F7609570953A
:10044000809590959B01AC01BD01CF010895F89472
:02045000FFCFDC
:100452006C697374656E696E673A00636170747576
:080462007265643A00D2040047
:00000001FF


================================================
FILE: ATMega328 2015-01-01 USART serial/tx rx interrupt/build.bat
================================================
@echo off
del *.elf
del *.hex
avr-gcc -mmcu=atmega328p -Wall -Os -o main.elf main.c -w
avr-objcopy -j .text -j .data -O ihex main.elf main.hex
pause
avrdude -c usbtiny -p m328p -U flash:w:"main.hex":a 
pause


================================================
FILE: ATMega328 2015-01-01 USART serial/tx rx interrupt/fuse_atmega328_int_1MHz.bat
================================================
@echo off
avrdude -c usbtiny -p m328p -U lfuse:w:0x62:m -U hfuse:w:0xd9:m
pause

================================================
FILE: ATMega328 2015-01-01 USART serial/tx rx interrupt/main.c
================================================
#define F_CPU 1000000ul
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>

#define USART_BAUDRATE 4800
#define UBRR_VALUE (((F_CPU/(USART_BAUDRATE*16UL)))-1)

void serial_init(){
	// initialize USART (must call this before using it)
	UBRR0=UBRR_VALUE; // set baud rate
	UCSR0B|=(1<<TXEN0); //enable TX
	UCSR0B|=(1<<RXEN0); //enable RX
	UCSR0B|=(1<<RXCIE0); //RX complete interrupt
	UCSR0C|=(1<<UCSZ01)|(1<<UCSZ01); // no parity, 1 stop bit, 8-bit data
}

void serial_send(unsigned char data){
	// send a single character via USART
	while(!(UCSR0A&(1<<UDRE0))){}; //wait while previous byte is completed
	UDR0 = data; // Transmit data
}

volatile char input='.';

ISR(USART_RX_vect){
	_delay_ms(100);
	char new=UDR0;
	if ((new>='0')&&(new<='9')){
		input=new;
	} else {
		input='?';
	}
}


int main(void){	
	serial_init();	
	sei();
	for(;;){
		_delay_ms(500);
		serial_send(input); // show the currently set value
	}
}

================================================
FILE: ATMega328 2015-01-01 USART serial/tx rx interrupt/main.hex
================================================
:100000000C9434000C9449000C9449000C94490061
:100010000C9449000C9449000C9449000C9449003C
:100020000C9449000C9449000C9449000C9449002C
:100030000C9449000C9449000C9449000C9449001C
:100040000C9449000C9449000C946A000C944900EB
:100050000C9449000C9449000C9449000C944900FC
:100060000C9449000C94490011241FBECFEFD8E036
:10007000DEBFCDBF11E0A0E0B1E0EAE4F1E002C0F4
:1000800005900D92A230B107D9F70E9488000C9418
:10009000A3000C9400008CE090E09093C500809346
:1000A000C400E1ECF0E08081886080838081806121
:1000B0008083808180688083E2ECF0E080818460CE
:1000C00080830895982F8091C00085FFFCCF909386
:1000D000C60008951F920F920FB60F9211248F93AE
:1000E0009F9388EA91E60197F1F79091C600892FD6
:1000F00080538A3018F49093000103C08FE38093FB
:1001000000019F918F910F900FBE0F901F90189537
:100110000E944B00789428E833E149E150E005C0A3
:10012000CA010197F1F72150304021153105C1F77F
:10013000909100018091C00085FFFCCF9093C60094
:0A01400028E833E1EDCFF894FFCF7B
:02014A002E0085
:00000001FF


================================================
FILE: ATMega328 2015-01-01 USART serial/tx rx polling/build.bat
================================================
@echo off
del *.elf
del *.hex
avr-gcc -mmcu=atmega328p -Wall -Os -o main.elf main.c -w
avr-objcopy -j .text -j .data -O ihex main.elf main.hex
pause
avrdude -c usbtiny -p m328p -U flash:w:"main.hex":a 
pause


================================================
FILE: ATMega328 2015-01-01 USART serial/tx rx polling/fuse_atmega328_int_1MHz.bat
================================================
@echo off
avrdude -c usbtiny -p m328p -U lfuse:w:0x62:m -U hfuse:w:0xd9:m
pause

================================================
FILE: ATMega328 2015-01-01 USART serial/tx rx polling/main.c
================================================
#define F_CPU 1000000ul
#include <avr/io.h>
#include <util/delay.h>

#define USART_BAUDRATE 4800
#define UBRR_VALUE (((F_CPU/(USART_BAUDRATE*16UL)))-1)

void serial_init(){
	// initialize USART (must call this before using it)
	UBRR0=UBRR_VALUE; // set baud rate
	UCSR0B|=(1<<TXEN0); //enable TX
	UCSR0B|=(1<<RXEN0); //enable RX
	UCSR0C|=(1<<UCSZ01)|(1<<UCSZ01); // no parity, 1 stop bit, 8-bit data
}

void serial_send(unsigned char data){
	// send a single character via USART
	while(!(UCSR0A&(1<<UDRE0))){}; //wait while previous byte is completed
	UDR0 = data; // Transmit data
}

char USARTReadChar()
{
	// wait until single character is read via USART
   while(!(UCSR0A & (1<<RXC0))){} // wait until data comes
   return UDR0;
}
	
int main(void){	
	serial_init();	
	char i='?';
	char input;
	for(;;){
		input=USARTReadChar(); // capture an input character (stalls until given)
		if ((input>='0')&&(input<='9')){i=input;} // if the input is a number, set it
		serial_send(i); // show the currently set value
	}
}

================================================
FILE: ATMega328 2015-01-01 USART serial/tx rx polling/main.hex
================================================
:100000000C9434000C943E000C943E000C943E0082
:100010000C943E000C943E000C943E000C943E0068
:100020000C943E000C943E000C943E000C943E0058
:100030000C943E000C943E000C943E000C943E0048
:100040000C943E000C943E000C943E000C943E0038
:100050000C943E000C943E000C943E000C943E0028
:100060000C943E000C943E0011241FBECFEFD8E04C
:10007000DEBFCDBF0E9463000C9478000C9400009A
:100080008CE090E09093C5008093C400E1ECF0E038
:10009000808188608083808180618083E2ECF0E0F1
:1000A0008081846080830895982F8091C00085FFAF
:1000B000FCCF9093C60008958091C00087FFFCCFCD
:1000C0008091C60008950E9440002FE38091C000F7
:1000D00087FFFCCF9091C600892F80538A3008F4A7
:1000E000292F8091C00085FFFCCF2093C600EECF62
:0400F000F894FFCFB2
:00000001FF


================================================
FILE: ATMega328 2016-09-04 SN74LV8154/README.md
================================================
# Newer Project - USB Counter with SN74lV8154
This project became its own GitHub repository:
* **https://github.com/swharden/USB-Counter** 👈 improved schematics and notes

# Original Project - SN74lV8154 AVR counter
This folder describes the design described on the original project page: http://www.swharden.com/wp/2016-09-05-vhf-frequency-counter-with-pc-interface/

The sn74lv8154 is a dual 16-bit counter than can be configured to act as a 32-bit counter. Although the datasheet doesn't report functionality at VHF frequencies, in my tests it works at least at 100MHz. The way I operate it is as a frequency counter with a gate. I'm measuring unknown frequencies with 1 pulse per second gate (from a GPS unit).

* Datasheet: http://www.ti.com/lit/ds/symlink/sn74lv8154.pdf

This program measures frequency with the AVR and outputs frequency (counts) to a computer via the serial port. Included is a barebones python script to display these frequency counts.

![](idea.png)

***WARNING:*** This schematic does not show [proper termination of the feed line](https://en.wikipedia.org/wiki/Electrical_termination). \
If using 50 Ohm coax, add a 50 Ohm resister between pin 1 and ground. _Thanks freemo_ ([#2](https://github.com/swharden/AVR-projects/issues/2))

![](ss.png)
![](IMG_8318.JPG)
_note: My tests on a breadboard showed this setup easily counts VHF frequencies over 100MHz (screenshot below). However, when I built it in an enclosure, it struggled to measure frequencies above 70MHz. It works well at 50MHz. I suspect this is because the signal I'm using doesn't travel well through 50 Ohm coax, but nontheless note that this is somewhat sketchy at VHF frequencies. Here it is clocking a canned 50MHz oscillator._


================================================
FILE: ATMega328 2016-09-04 SN74LV8154/build_atmega328.bat
================================================
@echo off
del *.elf
del *.hex
avr-gcc -mmcu=atmega328p -Wall -Os -o main.elf main.c -w
avr-objcopy -j .text -j .data -O ihex main.elf main.hex
pause
avrdude -c usbtiny -p m328p -U flash:w:"main.hex":a 
pause


================================================
FILE: ATMega328 2016-09-04 SN74LV8154/cleaner/build_atmega328.bat
================================================
@echo off
del *.elf
del *.hex
avr-gcc -mmcu=atmega328p -Wall -Os -o main.elf main.c -w
avr-objcopy -j .text -j .data -O ihex main.elf main.hex
pause
avrdude -c usbtiny -p m328p -U flash:w:"main.hex":a 
pause


================================================
FILE: ATMega328 2016-09-04 SN74LV8154/cleaner/fuse_atmega328_int_1MHz.bat
================================================
@echo off
avrdude -c usbtiny -p m328p -U lfuse:w:0x62:m -U hfuse:w:0xd9:m
pause

================================================
FILE: ATMega328 2016-09-04 SN74LV8154/cleaner/main.c
================================================
/*
This program interfacs an ATMega328p with an SN74LV8154N (32-bit counter). 
No interrupts are being used here. We expect the RCLK pin to handle the gating.
Output is [count, difference] via serial protocol. 19200 baud, 8-bit, no parity.
*/

#define F_CPU 1000000ul
#include <avr/io.h>
#include <util/delay.h>

#define USART_BAUDRATE 4800
#define UBRR_VALUE (((F_CPU/(USART_BAUDRATE*16UL)))-1)

void serial_init(){
	// initialize USART (must call this before using it)
	UBRR0=UBRR_VALUE; // set baud rate
	UCSR0B|=(1<<TXEN0); //enable transmission only
	UCSR0C|=(1<<UCSZ01)|(1<<UCSZ01); // no parity, 1 stop bit, 8-bit data
}

void serial_send(unsigned char data){
	// send a single character via USART
	while(!(UCSR0A&(1<<UDRE0))){}; //wait while previous byte is completed
	UDR0 = data; // Transmit data
}

void serial_string(const char* s){
    while(*s){
		serial_send(*s++);
	}
}

void serial_break(){
	serial_send(10); // new line 
	serial_send(13); // carriage return
}
void serial_comma(){
	serial_send(','); // comma
	serial_send(' '); // space
}

void serial_number(unsigned long int val){ // send a number as ASCII text
	unsigned long int divby=1000000000; // change by dataType
	while (divby){
		serial_send('0'+val/divby);
		val-=(val/divby)*divby;
		divby/=10;
	}
}

void serial_binary(int val){ // send a number as ASCII text
	char bitPos;
	for(bitPos=8;bitPos;bitPos--){
		if ((val>>(bitPos-1))&1){serial_send('1');}
		else {serial_send('0');}
	}
}

int counter_reg(char reg){
	// set all registers high
	PORTD|=(1<<PD5)|(1<<PD6)|(1<<PD7);
	PORTB|=(1<<PB0);
	
	// if 1-4 is given, ground it (send 0 to clear)
	if (reg==1) {PORTD&=~(1<<PD5);}
	if (reg==2) {PORTD&=~(1<<PD6);}
	if (reg==3) {PORTD&=~(1<<PD7);}
	if (reg==4) {PORTB&=~(1<<PB0);}
	
	_delay_ms(1);
	
	int val=0;
	if (PINC&(1<<PC5)){val+=1;}
	if (PINC&(1<<PC4)){val+=2;}
	if (PINC&(1<<PC3)){val+=4;}
	if (PINC&(1<<PC2)){val+=8;}
	if (PINC&(1<<PC1)){val+=16;}
	if (PINC&(1<<PC0)){val+=32;}
	if (PINB&(1<<PB2)){val+=64;}
	if (PINB&(1<<PB1)){val+=128;}
	
	
	// set all registers high
	PORTD|=(1<<PD5)|(1<<PD6)|(1<<PD7);
	PORTB|=(1<<PB0);
	
	return val;
}

unsigned long int counter_getCount(){
	unsigned long int count=0;
	count+=counter_reg(4);count<<=8;
	count+=counter_reg(3);count<<=8;
	count+=counter_reg(2);count<<=8;
	count+=counter_reg(1);
	return count;
}

unsigned long int counter_getCount_safe(){
	unsigned long int count1=1;
	unsigned long int count2=2;
	while (count1!=count2){
		count1=counter_getCount();
		count2=counter_getCount();
	}
	return count1;
}
	
void serial_test(){
	char i;
	serial_break();
	for(i=65;i<65+26;i++){
		serial_send(i);
	}
	serial_break();
}

int main(void){
	
	// register selects: PD5,PD6,PD7,PB0
	DDRD|=(1<<PD5)|(1<<PD6)|(1<<PD7);
	DDRB|=(1<<PB0);
	
	// LED output
	DDRD|=(1<<PD0); // LED1
	DDRD|=(1<<PD4); // LED2
	
	// count reads: PC5,PC4,PC3,PC2,PC1,PC0,PB2,PB1
	// INPUTS NOT OUTPUTS
	
	serial_init();
		
	//serial_string("Frequency Counter");
	//serial_break();
	//serial_string("www.SWHarden.com");
	//serial_break();
	
	unsigned long int countOld;
	unsigned long int countNew;
	unsigned long int countDiff;
	char blankReads=0;
	for(;;){		
		countNew=counter_getCount_safe();
		if ((countNew!=countOld)||(blankReads>50)){
			if (countNew>countOld){countDiff=countNew-countOld;}
			else {countDiff=0-countOld+countNew;}
			countOld=countNew;
			if (countDiff==0) {continue;}
			serial_string("F=");
			//serial_number(countNew); // send the raw count
			//serial_comma();
			serial_number(countDiff); // send the difference
			//serial_comma();
			//serial_number(countDiff*10); // EXPERIMENTAL
			serial_break();
			
			PORTD|=(1<<PD0); // blink LED1 on all TX
			if (blankReads<50){
				PORTD|=(1<<PD4); // blink LED2 if gated
			}
			blankReads=0;
		}
		blankReads++;
		_delay_ms(1); // wait a while
		PORTD&=~(1<<PD0);
		PORTD&=~(1<<PD4);
		//serial_test();
	}	
}

================================================
FILE: ATMega328 2016-09-04 SN74LV8154/cleaner/main.hex
================================================
:100000000C9434000C9449000C9449000C94490061
:100010000C9449000C9449000C9449000C9449003C
:100020000C9449000C9449000C9449000C9449002C
:100030000C9449000C9449000C9449000C9449001C
:100040000C9449000C9449000C9449000C9449000C
:100050000C9449000C9449000C9449000C944900FC
:100060000C9449000C94490011241FBECFEFD8E036
:10007000DEBFCDBF11E0A0E0B1E0E0E5F4E002C0FA
:1000800005900D92A430B107D9F70E94B1010C94EC
:1000900026020C9400008CE090E09093C5008093C1
:1000A000C400E1ECF0E0808188608083E2ECF0E065
:1000B0008081846080830895982F8091C00085FF9F
:1000C000FCCF9093C6000895FC0107C08091C0004A
:1000D00085FFFCCF31969093C60090819923B1F7AC
:1000E00008958091C00085FFFCCF8AE08093C60010
:1000F0008091C00085FFFCCF8DE08093C6000895FD
:100100008091C00085FFFCCF8CE28093C600809177
:10011000C00085FFFCCF80E28093C60008956F92F7
:100120007F928F929F92AF92BF92CF92DF92EF9287
:10013000FF920F931F93CF93DF935B016C01E12C30
:100140008AECF82E8AE9082F8BE3182FC0E0D0E064
:100150008091C00085FFFCCFB501C601A8019701C1
:100160000E940402205D2093C600C801B7012AE066
:1001700030E040E050E00E940402922E832E742E64
:10018000652E2196CA30D10589F0B501C601A801B6
:1001900097010E9404025B016C01292D382D472D27
:1001A000562DC901DA017C018D01D2CFDF91CF91AB
:1001B0001F910F91FF90EF90DF90CF90BF90AF9085
:1001C0009F908F907F906F900895AC0127E030E072
:1001D00070E361E3CA01022E02C0959587950A94E7
:1001E000E2F780FF07C08091C00085FFFCCF6093DD
:1001F000C60006C08091C00085FFFCCF7093C6008A
:10020000215030408FEF2F3F380721F70895982F66
:100210008BB1806E8BB9289A913011F45D980BC028
:10022000923011F45E9807C0933011F45F9803C0C8
:10023000943009F428988AEF90E00197F1F786B19D
:10024000282F30E095E0369527959A95E1F72170B3
:100250003070349B02C02E5F3F4F339B02C02C5F37
:100260003F4F329B02C0285F3F4F319B02C0205F4F
:100270003F4F309B02C0205E3F4F1A9B02C0205C64
:100280003F4F199B02C020583F4F8BB1806E8BB9F6
:10029000289AC9010895EF92FF920F931F9384E06B
:1002A0000E9407017C010027F7FC0095102F102FFA
:1002B0000F2DFE2CEE2483E00E940701AA2797FD54
:1002C000A095BA2FE80EF91E0A1F1B1F102F0F2D25
:1002D000FE2CEE2482E00E940701AA2797FDA0953C
:1002E000BA2FE80EF91E0A1F1B1F102F0F2DFE2C10
:1002F000EE2481E00E9407019C01442737FD4095D0
:10030000542F2E0D3F1D401F511FB901CA011F91CF
:100310000F91FF90EF900895EF92FF920F931F932C
:100320000E944B017B018C010E944B01E616F706EF
:1003300008071907A9F7B701C8011F910F91FF908E
:10034000EF9008950E94710091E48091C00085FFB4
:10035000FCCF9093C6009F5F9B35B9F70E94710058
:1003600008959F92AF92BF92CF92DF92EF92FF9249
:100370000F931F93CF93DF938AB1806E8AB9209A2F
:10038000509A549A8CE090E09093C5008093C400FA
:100390008091C10088608093C1008091C200846018
:1003A0008093C2009924CAEFD0E002C08601750193
:1003B0000E948C015B016C016E157F05800791071F
:1003C00019F482E38915CCF4D601C5018E199F0971
:1003D000A00BB10B7C018D0149F380E091E00E94FC
:1003E0006400C801B7010E948F000E947100589AF2
:1003F00091E399150CF05C9A99249394CE0101979E
:10040000F1F758985C98D2CFA1E21A2EAA1BBB1B19
:10041000FD010DC0AA1FBB1FEE1FFF1FA217B307D0
:10042000E407F50720F0A21BB30BE40BF50B661FE6
:10043000771F881F991F1A9469F7609570958095AA
:1004400090959B01AC01BD01CF010895F894FFCFB9
:04045000463D000025
:00000001FF


================================================
FILE: ATMega328 2016-09-04 SN74LV8154/cleaner/main_minimal.c
================================================
/*
This program interfacs an ATMega328p with an SN74LV8154N (32-bit counter). 
No interrupts are being used here. We expect the RCLK pin to handle the gating.
Output is [count, difference] via serial protocol. 19200 baud, 8-bit, no parity.
*/

#define F_CPU 1000000ul
#include <avr/io.h>
#include <util/delay.h>

#define USART_BAUDRATE 4800
#define UBRR_VALUE (((F_CPU/(USART_BAUDRATE*16UL)))-1)

void serial_init(){
	// initialize USART (must call this before using it)
	UBRR0=UBRR_VALUE; // set baud rate
	UCSR0B|=(1<<TXEN0); //enable transmission only
	UCSR0C|=(1<<UCSZ01)|(1<<UCSZ01); // no parity, 1 stop bit, 8-bit data
}

void serial_send(unsigned char data){
	// send a single character via USART
	while(!(UCSR0A&(1<<UDRE0))){}; //wait while previous byte is completed
	UDR0 = data; // Transmit data
}

void serial_string(const char* s){
    while(*s){
		serial_send(*s++);
	}
}

void serial_break(){
	serial_send(10); // new line 
	serial_send(13); // carriage return
}
void serial_comma(){
	serial_send(','); // comma
	serial_send(' '); // space
}

void serial_number(unsigned long int val){ // send a number as ASCII text
	unsigned long int divby=1000000000; // change by dataType
	while (divby){
		serial_send('0'+val/divby);
		val-=(val/divby)*divby;
		divby/=10;
	}
}

void serial_binary(int val){ // send a number as ASCII text
	char bitPos;
	for(bitPos=8;bitPos;bitPos--){
		if ((val>>(bitPos-1))&1){serial_send('1');}
		else {serial_send('0');}
	}
}

int counter_reg(char reg){
	// set all registers high
	PORTD|=(1<<PD5)|(1<<PD6)|(1<<PD7);
	PORTB|=(1<<PB0);
	
	// if 1-4 is given, ground it (send 0 to clear)
	if (reg==1) {PORTD&=~(1<<PD5);}
	if (reg==2) {PORTD&=~(1<<PD6);}
	if (reg==3) {PORTD&=~(1<<PD7);}
	if (reg==4) {PORTB&=~(1<<PB0);}
	
	_delay_ms(1);
	
	int val=0;
	if (PINC&(1<<PC5)){val+=1;}
	if (PINC&(1<<PC4)){val+=2;}
	if (PINC&(1<<PC3)){val+=4;}
	if (PINC&(1<<PC2)){val+=8;}
	if (PINC&(1<<PC1)){val+=16;}
	if (PINC&(1<<PC0)){val+=32;}
	if (PINB&(1<<PB2)){val+=64;}
	if (PINB&(1<<PB1)){val+=128;}
	
	
	// set all registers high
	PORTD|=(1<<PD5)|(1<<PD6)|(1<<PD7);
	PORTB|=(1<<PB0);
	
	return val;
}

unsigned long int counter_getCount(){
	unsigned long int count=0;
	count+=counter_reg(4);count<<=8;
	count+=counter_reg(3);count<<=8;
	count+=counter_reg(2);count<<=8;
	count+=counter_reg(1);
	return count;
}

unsigned long int counter_getCount_safe(){
	unsigned long int count1=1;
	unsigned long int count2=2;
	while (count1!=count2){
		count1=counter_getCount();
		count2=counter_getCount();
	}
	return count1;
}
	
void serial_test(){
	char i;
	serial_break();
	for(i=65;i<65+26;i++){
		serial_send(i);
	}
	serial_break();
}

int main(void){
	
	// register selects: PD5,PD6,PD7,PB0
	DDRD|=(1<<PD5)|(1<<PD6)|(1<<PD7);
	DDRB|=(1<<PB0);
	
	// LED output
	DDRD|=(1<<PD0); // LED1
	DDRD|=(1<<PD4); // LED2
	
	// count reads: PC5,PC4,PC3,PC2,PC1,PC0,PB2,PB1
	// INPUTS NOT OUTPUTS
	
	serial_init();
		
	serial_string("Frequency Counter");
	serial_break();
	serial_string("www.SWHarden.com");
	serial_break();
	
	unsigned long int countOld;
	unsigned long int countNew;
	unsigned long int countDiff;
	char blankReads=0;
	for(;;){		
		serial_number(counter_getCount_safe()); // send the difference
		serial_break();
		_delay_ms(100);
		//serial_send(0b10101010);
	}	
}

================================================
FILE: ATMega328 2016-09-04 SN74LV8154/demo.py
================================================
import serial
import serial.tools.list_ports

for potentialPort in list(serial.tools.list_ports.comports()):
    print(potentialPort.device,"-",potentialPort.description)

ser = serial.Serial()
ser.port = "COM5"
ser.baudrate = 19200
ser.bytesize = serial.EIGHTBITS
ser.parity = serial.PARITY_NONE
ser.stopbits = serial.STOPBITS_ONE
ser.timeout = 1.5
ser.open()
try:
    while True:
        print(ser.readline().decode("utf-8").strip())
except Exception as ER:
    print("EXCEPTION")
    print(ER)
ser.close()
print("DONE")

================================================
FILE: ATMega328 2016-09-04 SN74LV8154/kicad/simple-cache.lib
================================================
EESchema-LIBRARY Version 2.3
#encoding utf-8
#
# ATMEGA168A-P
#
DEF ATMEGA168A-P IC 0 40 Y Y 1 F N
F0 "IC" -750 1250 50 H V L BNN
F1 "ATMEGA168A-P" 400 -1400 50 H V L BNN
F2 "DIL28" 0 0 50 H V C CIN
F3 "" 0 0 50 H V C CNN
ALIAS ATMEGA48A-P ATMEGA48PA-P ATMEGA88A-P ATMEGA88PA-P ATMEGA168PA-P ATMEGA328-P ATMEGA328P-P
$FPLIST
 28DIP-ELL600
 28dip600
$ENDFPLIST
DRAW
S -750 1200 850 -1300 0 1 10 f
X (PCINT14/~RESET~)PC6 1 1000 -350 150 L 40 40 1 1 B
X (PCINT16/RXD)PD0 2 1000 -500 150 L 40 40 1 1 B
X (PCINT17/TXD)PD1 3 1000 -600 150 L 40 40 1 1 B
X (PCINT18/INT0)PD2 4 1000 -700 150 L 40 40 1 1 B
X (PCINT19/OC2B/INT1)PD3 5 1000 -800 150 L 40 40 1 1 B
X (PCINT20/XCK/T0)PD4 6 1000 -900 150 L 40 40 1 1 B
X VCC 7 -900 1100 150 R 40 40 1 1 W
X GND 8 -900 -1200 150 R 40 40 1 1 W
X (PCINT6/XTAL1/TOSC1)PB6 9 1000 500 150 L 40 40 1 1 B
X (PCINT7/XTAL2/TOSC2)PB7 10 1000 400 150 L 40 40 1 1 B
X AVCC 20 -900 800 150 R 40 40 1 1 W
X (PCINT21/OC0B/T1)PD5 11 1000 -1000 150 L 40 40 1 1 B
X AREF 21 -900 500 150 R 40 40 1 1 B
X (PCINT22/OC0A/AIN0)PD6 12 1000 -1100 150 L 40 40 1 1 B
X GND 22 -900 -1100 150 R 40 40 1 1 W
X (PCINT23/AIN1)PD7 13 1000 -1200 150 L 40 40 1 1 B
X (PCINT8/ADC0)PC0 23 1000 250 150 L 40 40 1 1 B
X (PCINT0/CLKO/ICP1)PB0 14 1000 1100 150 L 40 40 1 1 B
X (PCINT9/ADC1)PC1 24 1000 150 150 L 40 40 1 1 B
X (PCINT1/OC1A)PB1 15 1000 1000 150 L 40 40 1 1 B
X (PCINT10/ADC2)PC2 25 1000 50 150 L 40 40 1 1 B
X (PCINT2/OC1B/~SS~)PB2 16 1000 900 150 L 40 40 1 1 B
X (PCINT11/ADC3)PC3 26 1000 -50 150 L 40 40 1 1 B
X (PCINT3/OC2A/MOSI)PB3 17 1000 800 150 L 40 40 1 1 B
X (PCINT12/SDA/ADC4)PC4 27 1000 -150 150 L 40 40 1 1 B
X (PCINT4/MISO)PB4 18 1000 700 150 L 40 40 1 1 B
X (PCINT13/SCL/ADC5)PC5 28 1000 -250 150 L 40 40 1 1 B
X (PCINT5/SCK)PB5 19 1000 600 150 L 40 40 1 1 B
ENDDRAW
ENDDEF
#
# BNC
#
DEF BNC P 0 40 Y N 1 F N
F0 "P" 10 120 50 H V C CNN
F1 "BNC" 110 -60 50 V V C CNN
F2 "" 0 0 50 H V C CNN
F3 "" 0 0 50 H V C CNN
$FPLIST
 BNC_*
 bnc
 bnc-*
$ENDFPLIST
DRAW
C 0 0 20 0 1 8 N
C 0 0 70 0 1 12 N
X In 1 -150 0 130 R 40 40 1 1 P
X Ext 2 0 -200 130 U 40 40 1 1 P
ENDDRAW
ENDDEF
#
# Crystal_Small
#
DEF Crystal_Small Y 0 40 N N 1 F N
F0 "Y" 0 100 50 H V C CNN
F1 "Crystal_Small" 0 -100 50 H V C CNN
F2 "" 0 0 50 H V C CNN
F3 "" 0 0 50 H V C CNN
$FPLIST
 Crystal_
$ENDFPLIST
DRAW
S -30 -60 30 60 0 1 0 N
P 2 0 1 0  -50 -30  -50 30 N
P 2 0 1 0  50 -30  50 30 N
X 1 1 -100 0 50 R 40 40 1 1 P
X 2 2 100 0 50 L 40 40 1 1 P
ENDDRAW
ENDDEF
#
# GNDREF
#
DEF GNDREF #PWR 0 0 Y Y 1 F P
F0 "#PWR" 0 -250 50 H I C CNN
F1 "GNDREF" 0 -150 50 H V C CNN
F2 "" 0 0 50 H V C CNN
F3 "" 0 0 50 H V C CNN
DRAW
P 2 0 1 0  -25 -75  25 -75 N
P 2 0 1 0  -5 -100  5 -100 N
P 2 0 1 0  0 -50  0 0 N
P 2 0 1 0  50 -50  -50 -50 N
X GNDREF 1 0 0 0 D 50 50 1 1 W N
ENDDRAW
ENDDEF
#
# LED
#
DEF LED D 0 40 Y N 1 F N
F0 "D" 0 100 50 H V C CNN
F1 "LED" 0 -100 50 H V C CNN
F2 "" 0 0 50 H V C CNN
F3 "" 0 0 50 H V C CNN
$FPLIST
 LED-3MM
 LED-5MM
 LED-10MM
 LED-0603
 LED-0805
 LED-1206
 LEDV
$ENDFPLIST
DRAW
P 2 0 1 0  -50 50  -50 -50 N
P 3 0 1 0  -80 -25  -125 -65  -120 -40 N
P 3 0 1 0  -65 -40  -110 -80  -105 -55 N
P 3 0 1 0  50 50  -50 0  50 -50 F
X K 1 -200 0 150 R 40 40 1 1 P
X A 2 200 0 150 L 40 40 1 1 P
ENDDRAW
ENDDEF
#
# R
#
DEF R R 0 0 N Y 1 F N
F0 "R" 80 0 50 V V C CNN
F1 "R" 0 0 50 V V C CNN
F2 "" -70 0 50 V V C CNN
F3 "" 0 0 50 H V C CNN
$FPLIST
 R_*
 Resistor_*
$ENDFPLIST
DRAW
S -40 -100 40 100 0 1 10 N
X ~ 1 0 150 50 D 50 50 1 1 P
X ~ 2 0 -150 50 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# SN74LV8154
#
DEF SN74LV8154 U 0 40 Y Y 1 F N
F0 "U" 450 -800 60 H V C CNN
F1 "SN74LV8154" 200 300 60 H V C CNN
F2 "" 0 0 60 H V C CNN
F3 "" 0 0 60 H V C CNN
DRAW
S 500 250 -100 -750 0 1 0 N
X CLKA 1 -400 200 300 R 50 50 1 1 O
X CLKB 2 -400 100 300 R 50 50 1 1 O
X GAL 3 -400 0 300 R 50 50 1 1 O I
X GAU 4 -400 -100 300 R 50 50 1 1 O I
X GBL 5 -400 -200 300 R 50 50 1 1 O I
X GBU 6 -400 -300 300 R 50 50 1 1 O I
X RCLK 7 -400 -400 300 R 50 50 1 1 O
X RCOA 8 -400 -500 300 R 50 50 1 1 O I
X CLKBEN 9 -400 -600 300 R 50 50 1 1 O I
X GND 10 -400 -700 300 R 50 50 1 1 O
X VCC 20 800 200 300 L 50 50 1 1 O
X CCLR 11 800 -700 300 L 50 50 1 1 O I
X Y7 12 800 -600 300 L 50 50 1 1 O
X Y6 13 800 -500 300 L 50 50 1 1 O
X Y5 14 800 -400 300 L 50 50 1 1 O
X Y4 15 800 -300 300 L 50 50 1 1 O
X Y3 16 800 -200 300 L 50 50 1 1 O
X Y2 17 800 -100 300 L 50 50 1 1 O
X Y1 18 800 0 300 L 50 50 1 1 O
X Y0 19 800 100 300 L 50 50 1 1 O
ENDDRAW
ENDDEF
#
# VCC
#
DEF VCC #PWR 0 0 Y Y 1 F P
F0 "#PWR" 0 -150 50 H I C CNN
F1 "VCC" 0 150 50 H V C CNN
F2 "" 0 0 50 H V C CNN
F3 "" 0 0 50 H V C CNN
DRAW
C 0 75 25 0 1 0 N
P 2 0 1 0  0 0  0 50 N
X VCC 1 0 0 0 U 50 50 1 1 W N
ENDDRAW
ENDDEF
#
#End Library


================================================
FILE: ATMega328 2016-09-04 SN74LV8154/kicad/simple.bak
================================================
EESchema Schematic File Version 2
LIBS:power
LIBS:device
LIBS:transistors
LIBS:conn
LIBS:linear
LIBS:regul
LIBS:74xx
LIBS:cmos4000
LIBS:adc-dac
LIBS:memory
LIBS:xilinx
LIBS:microcontrollers
LIBS:dsp
LIBS:microchip
LIBS:analog_switches
LIBS:motorola
LIBS:texas
LIBS:intel
LIBS:audio
LIBS:interface
LIBS:digital-audio
LIBS:philips
LIBS:display
LIBS:cypress
LIBS:siliconi
LIBS:opto
LIBS:atmel
LIBS:contrib
LIBS:valves
LIBS:texas_counters
LIBS:simple-cache
EELAYER 25 0
EELAYER END
$Descr A4 11693 8268
encoding utf-8
Sheet 1 1
Title ""
Date ""
Rev ""
Comp ""
Comment1 ""
Comment2 ""
Comment3 ""
Comment4 ""
$EndDescr
$Comp
L ATMEGA328P-P IC?
U 1 1 57CBAB7F
P 6700 3300
F 0 "IC?" H 5950 4550 50  0000 L BNN
F 1 "ATMEGA328P-P" H 7100 1900 50  0000 L BNN
F 2 "DIL28" H 6700 3300 50  0000 C CIN
F 3 "" H 6700 3300 50  0000 C CNN
	1    6700 3300
	1    0    0    -1  
$EndComp
$Comp
L SN74LV8154 U?
U 1 1 57CBAC24
P 4200 2400
F 0 "U?" H 4650 1600 60  0000 C CNN
F 1 "SN74LV8154" H 4400 2700 60  0000 C CNN
F 2 "" H 4200 2400 60  0000 C CNN
F 3 "" H 4200 2400 60  0000 C CNN
	1    4200 2400
	1    0    0    -1  
$EndComp
Text Label 3800 2400 2    60   ~ 0
R1
Text Label 3800 2500 2    60   ~ 0
R2
Text Label 3800 2600 2    60   ~ 0
R3
Text Label 3800 2700 2    60   ~ 0
R4
$Comp
L GNDREF #PWR?
U 1 1 57CBAD37
P 3800 3100
F 0 "#PWR?" H 3800 2850 50  0001 C CNN
F 1 "GNDREF" H 3800 2950 50  0001 C CNN
F 2 "" H 3800 3100 50  0000 C CNN
F 3 "" H 3800 3100 50  0000 C CNN
	1    3800 3100
	1    0    0    -1  
$EndComp
$Comp
L VCC #PWR?
U 1 1 57CBADA6
P 5000 2200
F 0 "#PWR?" H 5000 2050 50  0001 C CNN
F 1 "VCC" H 5000 2350 50  0000 C CNN
F 2 "" H 5000 2200 50  0000 C CNN
F 3 "" H 5000 2200 50  0000 C CNN
	1    5000 2200
	1    0    0    -1  
$EndComp
$Comp
L BNC P?
U 1 1 57CBB19C
P 3550 2800
F 0 "P?" H 3560 2920 50  0000 C CNN
F 1 "GATE" V 3675 2800 50  0000 C CNN
F 2 "" H 3550 2800 50  0000 C CNN
F 3 "" H 3550 2800 50  0000 C CNN
	1    3550 2800
	-1   0    0    -1  
$EndComp
$Comp
L GNDREF #PWR?
U 1 1 57CBB1DA
P 3550 3000
F 0 "#PWR?" H 3550 2750 50  0001 C CNN
F 1 "GNDREF" H 3550 2850 50  0001 C CNN
F 2 "" H 3550 3000 50  0000 C CNN
F 3 "" H 3550 3000 50  0000 C CNN
	1    3550 3000
	1    0    0    -1  
$EndComp
$Comp
L BNC P?
U 1 1 57CBB352
P 3550 2200
F 0 "P?" H 3560 2320 50  0000 C CNN
F 1 "FREQ IN" V 3675 2200 50  0000 C CNN
F 2 "" H 3550 2200 50  0000 C CNN
F 3 "" H 3550 2200 50  0000 C CNN
	1    3550 2200
	-1   0    0    -1  
$EndComp
$Comp
L GNDREF #PWR?
U 1 1 57CBB358
P 3550 2400
F 0 "#PWR?" H 3550 2150 50  0001 C CNN
F 1 "GNDREF" H 3550 2250 50  0001 C CNN
F 2 "" H 3550 2400 50  0000 C CNN
F 3 "" H 3550 2400 50  0000 C CNN
	1    3550 2400
	1    0    0    -1  
$EndComp
Text Label 5000 2300 0    60   ~ 0
Y0
Text Label 5000 2400 0    60   ~ 0
Y1
Text Label 5000 2500 0    60   ~ 0
Y2
Text Label 5000 2600 0    60   ~ 0
Y3
Text Label 5000 2700 0    60   ~ 0
Y4
Text Label 5000 2800 0    60   ~ 0
Y5
Text Label 5000 2900 0    60   ~ 0
Y6
Text Label 5000 3000 0    60   ~ 0
Y7
$Comp
L VCC #PWR?
U 1 1 57CBBB5D
P 5800 2200
F 0 "#PWR?" H 5800 2050 50  0001 C CNN
F 1 "VCC" H 5800 2350 50  0000 C CNN
F 2 "" H 5800 2200 50  0000 C CNN
F 3 "" H 5800 2200 50  0000 C CNN
	1    5800 2200
	1    0    0    -1  
$EndComp
$Comp
L GNDREF #PWR?
U 1 1 57CBBBCE
P 5800 4500
F 0 "#PWR?" H 5800 4250 50  0001 C CNN
F 1 "GNDREF" H 5800 4350 50  0001 C CNN
F 2 "" H 5800 4500 50  0000 C CNN
F 3 "" H 5800 4500 50  0000 C CNN
	1    5800 4500
	1    0    0    -1  
$EndComp
Text Label 7700 4300 0    60   ~ 0
R1
Text Label 7700 4400 0    60   ~ 0
R2
Text Label 7700 4500 0    60   ~ 0
R3
$Comp
L VCC #PWR?
U 1 1 57CBC023
P 5000 3100
F 0 "#PWR?" H 5000 2950 50  0001 C CNN
F 1 "VCC" H 5000 3250 50  0000 C CNN
F 2 "" H 5000 3100 50  0000 C CNN
F 3 "" H 5000 3100 50  0000 C CNN
	1    5000 3100
	0    1    1    0   
$EndComp
Text Label 7700 2200 0    60   ~ 0
R4
Text Label 7700 3550 0    60   ~ 0
Y0
Text Label 7700 3450 0    60   ~ 0
Y1
Text Label 7700 3350 0    60   ~ 0
Y2
Wire Wire Line
	3800 2900 3800 3000
Wire Wire Line
	3800 2800 3700 2800
Wire Wire Line
	3800 2200 3700 2200
Wire Wire Line
	3800 2300 3800 2200
Text Label 7700 3250 0    60   ~ 0
Y3
Text Label 7700 3150 0    60   ~ 0
Y4
Text Label 7700 3050 0    60   ~ 0
Y5
Text Label 7700 2400 0    60   ~ 0
Y6
Text Label 7700 2300 0    60   ~ 0
Y7
$Comp
L R R?
U 1 1 57CBC2EE
P 8250 3800
F 0 "R?" V 8330 3800 50  0000 C CNN
F 1 "47k" V 8250 3800 50  0000 C CNN
F 2 "" V 8180 3800 50  0000 C CNN
F 3 "" H 8250 3800 50  0000 C CNN
	1    8250 3800
	0    1    1    0   
$EndComp
Wire Wire Line
	7700 3800 8100 3800
$Comp
L LED D?
U 1 1 57CBC449
P 8600 3800
F 0 "D?" H 8600 3900 50  0000 C CNN
F 1 "LED1" H 8600 3700 50  0000 C CNN
F 2 "" H 8600 3800 50  0000 C CNN
F 3 "" H 8600 3800 50  0000 C CNN
	1    8600 3800
	-1   0    0    1   
$EndComp
$Comp
L GNDREF #PWR?
U 1 1 57CBC4CA
P 8800 3800
F 0 "#PWR?" H 8800 3550 50  0001 C CNN
F 1 "GNDREF" H 8800 3650 50  0001 C CNN
F 2 "" H 8800 3800 50  0000 C CNN
F 3 "" H 8800 3800 50  0000 C CNN
	1    8800 3800
	1    0    0    -1  
$EndComp
Wire Wire Line
	5800 4400 5800 4500
$Comp
L Crystal_Small Y?
U 1 1 57CBCB92
P 8175 2900
F 0 "Y?" H 8175 3000 50  0001 C CNN
F 1 "11.0592 MHz" H 8175 2775 50  0000 C CNN
F 2 "" H 8175 2900 50  0000 C CNN
F 3 "" H 8175 2900 50  0000 C CNN
	1    8175 2900
	1    0    0    -1  
$EndComp
Wire Wire Line
	7700 2900 8075 2900
Wire Wire Line
	8275 2900 8275 2800
Wire Wire Line
	8275 2800 7700 2800
Text Notes 3575 3775 0    60   ~ 0
pay careful attention to power regulation,\ndecoupling inductor/capacitors, \nsignal input loading, etc
Text Label 7700 3900 0    60   ~ 0
SERIAL
$Comp
L R R?
U 1 1 57CD9617
P 8250 4200
F 0 "R?" V 8330 4200 50  0000 C CNN
F 1 "47k" V 8250 4200 50  0000 C CNN
F 2 "" V 8180 4200 50  0000 C CNN
F 3 "" H 8250 4200 50  0000 C CNN
	1    8250 4200
	0    1    1    0   
$EndComp
$Comp
L LED D?
U 1 1 57CD961D
P 8600 4200
F 0 "D?" H 8600 4300 50  0000 C CNN
F 1 "LED1" H 8600 4100 50  0000 C CNN
F 2 "" H 8600 4200 50  0000 C CNN
F 3 "" H 8600 4200 50  0000 C CNN
	1    8600 4200
	-1   0    0    1   
$EndComp
$Comp
L GNDREF #PWR?
U 1 1 57CD9623
P 8800 4200
F 0 "#PWR?" H 8800 3950 50  0001 C CNN
F 1 "GNDREF" H 8800 4050 50  0001 C CNN
F 2 "" H 8800 4200 50  0000 C CNN
F 3 "" H 8800 4200 50  0000 C CNN
	1    8800 4200
	1    0    0    -1  
$EndComp
Wire Wire Line
	8100 4200 7700 4200
$EndSCHEMATC


================================================
FILE: ATMega328 2016-09-04 SN74LV8154/kicad/simple.kicad_pcb
================================================
(kicad_pcb (version 4) (host kicad "dummy file") )


================================================
FILE: ATMega328 2016-09-04 SN74LV8154/kicad/simple.pro
================================================
update=9/4/2016 8:53:33 PM
version=1
last_client=kicad
[pcbnew]
version=1
LastNetListRead=
UseCmpFile=1
PadDrill=0.600000000000
PadDrillOvalY=0.600000000000
PadSizeH=1.500000000000
PadSizeV=1.500000000000
PcbTextSizeV=1.500000000000
PcbTextSizeH=1.500000000000
PcbTextThickness=0.300000000000
ModuleTextSizeV=1.000000000000
ModuleTextSizeH=1.000000000000
ModuleTextSizeThickness=0.150000000000
SolderMaskClearance=0.000000000000
SolderMaskMinWidth=0.000000000000
DrawSegmentWidth=0.200000000000
BoardOutlineThickness=0.100000000000
ModuleOutlineThickness=0.150000000000
[cvpcb]
version=1
NetIExt=net
[general]
version=1
[eeschema]
version=1
LibDir=
[eeschema/libraries]
LibName1=power
LibName2=device
LibName3=transistors
LibName4=conn
LibName5=linear
LibName6=regul
LibName7=74xx
LibName8=cmos4000
LibName9=adc-dac
LibName10=memory
LibName11=xilinx
LibName12=microcontrollers
LibName13=dsp
LibName14=microchip
LibName15=analog_switches
LibName16=motorola
LibName17=texas
LibName18=intel
LibName19=audio
LibName20=interface
LibName21=digital-audio
LibName22=philips
LibName23=display
LibName24=cypress
LibName25=siliconi
LibName26=opto
LibName27=atmel
LibName28=contrib
LibName29=valves
LibName30=C:/Users/scott/Documents/important/KiCad/custom library/texas_counters
[schematic_editor]
version=1
PageLayoutDescrFile=
PlotDirectoryName=
SubpartIdSeparator=0
SubpartFirstId=65
NetFmtName=
SpiceForceRefPrefix=0
SpiceUseNetNumbers=0
LabSize=60


================================================
FILE: ATMega328 2016-09-04 SN74LV8154/kicad/simple.sch
================================================
EESchema Schematic File Version 2
LIBS:power
LIBS:device
LIBS:transistors
LIBS:conn
LIBS:linear
LIBS:regul
LIBS:74xx
LIBS:cmos4000
LIBS:adc-dac
LIBS:memory
LIBS:xilinx
LIBS:microcontrollers
LIBS:dsp
LIBS:microchip
LIBS:analog_switches
LIBS:motorola
LIBS:texas
LIBS:intel
LIBS:audio
LIBS:interface
LIBS:digital-audio
LIBS:philips
LIBS:display
LIBS:cypress
LIBS:siliconi
LIBS:opto
LIBS:atmel
LIBS:contrib
LIBS:valves
LIBS:texas_counters
LIBS:simple-cache
EELAYER 25 0
EELAYER END
$Descr A4 11693 8268
encoding utf-8
Sheet 1 1
Title ""
Date ""
Rev ""
Comp ""
Comment1 ""
Comment2 ""
Comment3 ""
Comment4 ""
$EndDescr
$Comp
L ATMEGA328P-P IC?
U 1 1 57CBAB7F
P 6700 3300
F 0 "IC?" H 5950 4550 50  0000 L BNN
F 1 "ATMEGA328P-P" H 7100 1900 50  0000 L BNN
F 2 "DIL28" H 6700 3300 50  0000 C CIN
F 3 "" H 6700 3300 50  0000 C CNN
	1    6700 3300
	1    0    0    -1  
$EndComp
$Comp
L SN74LV8154 U?
U 1 1 57CBAC24
P 4200 2400
F 0 "U?" H 4650 1600 60  0000 C CNN
F 1 "SN74LV8154" H 4400 2700 60  0000 C CNN
F 2 "" H 4200 2400 60  0000 C CNN
F 3 "" H 4200 2400 60  0000 C CNN
	1    4200 2400
	1    0    0    -1  
$EndComp
Text Label 3800 2400 2    60   ~ 0
R1
Text Label 3800 2500 2    60   ~ 0
R2
Text Label 3800 2600 2    60   ~ 0
R3
Text Label 3800 2700 2    60   ~ 0
R4
$Comp
L GNDREF #PWR?
U 1 1 57CBAD37
P 3800 3100
F 0 "#PWR?" H 3800 2850 50  0001 C CNN
F 1 "GNDREF" H 3800 2950 50  0001 C CNN
F 2 "" H 3800 3100 50  0000 C CNN
F 3 "" H 3800 3100 50  0000 C CNN
	1    3800 3100
	1    0    0    -1  
$EndComp
$Comp
L VCC #PWR?
U 1 1 57CBADA6
P 5000 2200
F 0 "#PWR?" H 5000 2050 50  0001 C CNN
F 1 "VCC" H 5000 2350 50  0000 C CNN
F 2 "" H 5000 2200 50  0000 C CNN
F 3 "" H 5000 2200 50  0000 C CNN
	1    5000 2200
	1    0    0    -1  
$EndComp
$Comp
L BNC P?
U 1 1 57CBB19C
P 3550 2800
F 0 "P?" H 3560 2920 50  0000 C CNN
F 1 "GATE" V 3675 2800 50  0000 C CNN
F 2 "" H 3550 2800 50  0000 C CNN
F 3 "" H 3550 2800 50  0000 C CNN
	1    3550 2800
	-1   0    0    -1  
$EndComp
$Comp
L GNDREF #PWR?
U 1 1 57CBB1DA
P 3550 3000
F 0 "#PWR?" H 3550 2750 50  0001 C CNN
F 1 "GNDREF" H 3550 2850 50  0001 C CNN
F 2 "" H 3550 3000 50  0000 C CNN
F 3 "" H 3550 3000 50  0000 C CNN
	1    3550 3000
	1    0    0    -1  
$EndComp
$Comp
L BNC P?
U 1 1 57CBB352
P 3550 2200
F 0 "P?" H 3560 2320 50  0000 C CNN
F 1 "FREQ IN" V 3675 2200 50  0000 C CNN
F 2 "" H 3550 2200 50  0000 C CNN
F 3 "" H 3550 2200 50  0000 C CNN
	1    3550 2200
	-1   0    0    -1  
$EndComp
$Comp
L GNDREF #PWR?
U 1 1 57CBB358
P 3550 2400
F 0 "#PWR?" H 3550 2150 50  0001 C CNN
F 1 "GNDREF" H 3550 2250 50  0001 C CNN
F 2 "" H 3550 2400 50  0000 C CNN
F 3 "" H 3550 2400 50  0000 C CNN
	1    3550 2400
	1    0    0    -1  
$EndComp
Text Label 5000 2300 0    60   ~ 0
Y0
Text Label 5000 2400 0    60   ~ 0
Y1
Text Label 5000 2500 0    60   ~ 0
Y2
Text Label 5000 2600 0    60   ~ 0
Y3
Text Label 5000 2700 0    60   ~ 0
Y4
Text Label 5000 2800 0    60   ~ 0
Y5
Text Label 5000 2900 0    60   ~ 0
Y6
Text Label 5000 3000 0    60   ~ 0
Y7
$Comp
L VCC #PWR?
U 1 1 57CBBB5D
P 5800 2200
F 0 "#PWR?" H 5800 2050 50  0001 C CNN
F 1 "VCC" H 5800 2350 50  0000 C CNN
F 2 "" H 5800 2200 50  0000 C CNN
F 3 "" H 5800 2200 50  0000 C CNN
	1    5800 2200
	1    0    0    -1  
$EndComp
$Comp
L GNDREF #PWR?
U 1 1 57CBBBCE
P 5800 4500
F 0 "#PWR?" H 5800 4250 50  0001 C CNN
F 1 "GNDREF" H 5800 4350 50  0001 C CNN
F 2 "" H 5800 4500 50  0000 C CNN
F 3 "" H 5800 4500 50  0000 C CNN
	1    5800 4500
	1    0    0    -1  
$EndComp
Text Label 7700 4300 0    60   ~ 0
R1
Text Label 7700 4400 0    60   ~ 0
R2
Text Label 7700 4500 0    60   ~ 0
R3
$Comp
L VCC #PWR?
U 1 1 57CBC023
P 5000 3100
F 0 "#PWR?" H 5000 2950 50  0001 C CNN
F 1 "VCC" H 5000 3250 50  0000 C CNN
F 2 "" H 5000 3100 50  0000 C CNN
F 3 "" H 5000 3100 50  0000 C CNN
	1    5000 3100
	0    1    1    0   
$EndComp
Text Label 7700 2200 0    60   ~ 0
R4
Text Label 7700 3550 0    60   ~ 0
Y0
Text Label 7700 3450 0    60   ~ 0
Y1
Text Label 7700 3350 0    60   ~ 0
Y2
Wire Wire Line
	3800 2900 3800 3000
Wire Wire Line
	3800 2800 3700 2800
Wire Wire Line
	3800 2200 3700 2200
Wire Wire Line
	3800 2300 3800 2200
Text Label 7700 3250 0    60   ~ 0
Y3
Text Label 7700 3150 0    60   ~ 0
Y4
Text Label 7700 3050 0    60   ~ 0
Y5
Text Label 7700 2400 0    60   ~ 0
Y6
Text Label 7700 2300 0    60   ~ 0
Y7
$Comp
L R R?
U 1 1 57CBC2EE
P 8250 3800
F 0 "R?" V 8330 3800 50  0000 C CNN
F 1 "47k" V 8250 3800 50  0000 C CNN
F 2 "" V 8180 3800 50  0000 C CNN
F 3 "" H 8250 3800 50  0000 C CNN
	1    8250 3800
	0    1    1    0   
$EndComp
Wire Wire Line
	7700 3800 8100 3800
$Comp
L LED D?
U 1 1 57CBC449
P 8600 3800
F 0 "D?" H 8600 3900 50  0000 C CNN
F 1 "LED1" H 8600 3700 50  0000 C CNN
F 2 "" H 8600 3800 50  0000 C CNN
F 3 "" H 8600 3800 50  0000 C CNN
	1    8600 3800
	-1   0    0    1   
$EndComp
$Comp
L GNDREF #PWR?
U 1 1 57CBC4CA
P 8800 3800
F 0 "#PWR?" H 8800 3550 50  0001 C CNN
F 1 "GNDREF" H 8800 3650 50  0001 C CNN
F 2 "" H 8800 3800 50  0000 C CNN
F 3 "" H 8800 3800 50  0000 C CNN
	1    8800 3800
	1    0    0    -1  
$EndComp
Wire Wire Line
	5800 4400 5800 4500
$Comp
L Crystal_Small Y?
U 1 1 57CBCB92
P 8175 2900
F 0 "Y?" H 8175 3000 50  0001 C CNN
F 1 "11.0592 MHz" H 8175 2775 50  0000 C CNN
F 2 "" H 8175 2900 50  0000 C CNN
F 3 "" H 8175 2900 50  0000 C CNN
	1    8175 2900
	1    0    0    -1  
$EndComp
Wire Wire Line
	7700 2900 8075 2900
Wire Wire Line
	8275 2900 8275 2800
Wire Wire Line
	8275 2800 7700 2800
Text Notes 3575 3775 0    60   ~ 0
pay careful attention to power regulation,\ndecoupling inductor/capacitors, \nsignal input loading, etc
Text Label 7700 3900 0    60   ~ 0
SERIAL
$Comp
L R R?
U 1 1 57CD9617
P 8250 4200
F 0 "R?" V 8330 4200 50  0000 C CNN
F 1 "47k" V 8250 4200 50  0000 C CNN
F 2 "" V 8180 4200 50  0000 C CNN
F 3 "" H 8250 4200 50  0000 C CNN
	1    8250 4200
	0    1    1    0   
$EndComp
$Comp
L LED D?
U 1 1 57CD961D
P 8600 4200
F 0 "D?" H 8600 4300 50  0000 C CNN
F 1 "LED2" H 8600 4100 50  0000 C CNN
F 2 "" H 8600 4200 50  0000 C CNN
F 3 "" H 8600 4200 50  0000 C CNN
	1    8600 4200
	-1   0    0    1   
$EndComp
$Comp
L GNDREF #PWR?
U 1 1 57CD9623
P 8800 4200
F 0 "#PWR?" H 8800 3950 50  0001 C CNN
F 1 "GNDREF" H 8800 4050 50  0001 C CNN
F 2 "" H 8800 4200 50  0000 C CNN
F 3 "" H 8800 4200 50  0000 C CNN
	1    8800 4200
	1    0    0    -1  
$EndComp
Wire Wire Line
	8100 4200 7700 4200
$EndSCHEMATC


================================================
FILE: ATMega328 2016-09-04 SN74LV8154/main.c
================================================
/*
This program interfacs an ATMega328p with an SN74LV8154N (32-bit counter). 
No interrupts are being used here. We expect the RCLK pin to handle the gating.
Output is [count, difference] via serial protocol. 19200 baud, 8-bit, no parity.
*/

#define F_CPU 11059200ul
#include <avr/io.h>
#include <util/delay.h>

#define USART_BAUDRATE 9600
#define UBRR_VALUE (((F_CPU/(USART_BAUDRATE*16UL)))-1)

void serial_init(){
	// initialize USART (must call this before using it)
	UBRR0=UBRR_VALUE; // set baud rate
	UCSR0B|=(1<<TXEN0); //enable transmission only
	UCSR0C|=(1<<UCSZ01)|(1<<UCSZ01); // no parity, 1 stop bit, 8-bit data
}

void serial_send(unsigned char data){
	// send a single character via USART
	while(!(UCSR0A&(1<<UDRE0))){}; //wait while previous byte is completed
	UDR0 = data; // Transmit data
}

void serial_string(const char* s){
    while(*s){
		serial_send(*s++);
	}
}

void serial_break(){
	serial_send(10); // new line 
	serial_send(13); // carriage return
}
void serial_comma(){
	serial_send(','); // comma
	serial_send(' '); // space
}

void serial_number(unsigned long int val){ // send a number as ASCII text
	unsigned long int divby=1000000000; // change by dataType
	while (divby){
		serial_send('0'+val/divby);
		val-=(val/divby)*divby;
		divby/=10;
	}
}

void serial_binary(int val){ // send a number as ASCII text
	char bitPos;
	for(bitPos=8;bitPos;bitPos--){
		if ((val>>(bitPos-1))&1){serial_send('1');}
		else {serial_send('0');}
	}
}

int counter_reg(char reg){
	// set all registers high
	PORTD|=(1<<PD5)|(1<<PD6)|(1<<PD7);
	PORTB|=(1<<PB0);
	
	// if 1-4 is given, ground it (send 0 to clear)
	if (reg==1) {PORTD&=~(1<<PD5);}
	if (reg==2) {PORTD&=~(1<<PD6);}
	if (reg==3) {PORTD&=~(1<<PD7);}
	if (reg==4) {PORTB&=~(1<<PB0);}
	
	_delay_ms(1);
	
	int val=0;
	if (PINC&(1<<PC5)){val+=1;}
	if (PINC&(1<<PC4)){val+=2;}
	if (PINC&(1<<PC3)){val+=4;}
	if (PINC&(1<<PC2)){val+=8;}
	if (PINC&(1<<PC1)){val+=16;}
	if (PINC&(1<<PC0)){val+=32;}
	if (PINB&(1<<PB2)){val+=64;}
	if (PINB&(1<<PB1)){val+=128;}
	
	
	// set all registers high
	PORTD|=(1<<PD5)|(1<<PD6)|(1<<PD7);
	PORTB|=(1<<PB0);
	
	return val;
}

unsigned long int counter_getCount(){
	unsigned long int count=0;
	count+=counter_reg(4);count<<=8;
	count+=counter_reg(3);count<<=8;
	count+=counter_reg(2);count<<=8;
	count+=counter_reg(1);
	return count;
}

unsigned long int counter_getCount_safe(){
	unsigned long int count1=1;
	unsigned long int count2=2;
	while (count1!=count2){
		count1=counter_getCount();
		count2=counter_getCount();
	}
	return count1;
}
	
void serial_test(){
	char i;
	serial_break();
	for(i=65;i<65+26;i++){
		serial_send(i);
	}
	serial_break();
}

int main(void){
	
	// register selects: PD5,PD6,PD7,PB0
	DDRD|=(1<<PD5)|(1<<PD6)|(1<<PD7);
	DDRB|=(1<<PB0);
	
	// LED output
	DDRD|=(1<<PD0); // LED1
	DDRD|=(1<<PD4); // LED2
	
	// count reads: PC5,PC4,PC3,PC2,PC1,PC0,PB2,PB1
	// INPUTS NOT OUTPUTS
	
	serial_init();
	//serial_string("Frequency Counter");
	//serial_break();
	//serial_string("www.SWHarden.com");
	//serial_break();
	
	unsigned long int countOld;
	unsigned long int countNew;
	unsigned long int countDiff;
	char blankReads=0;
	for(;;){		
		countNew=counter_getCount_safe();
		if ((countNew!=countOld)||(blankReads>50)){
			if (countNew>countOld){countDiff=countNew-countOld;}
			else {countDiff=0-countOld+countNew;}
			countOld=countNew;
			if (countDiff==0) {continue;}
			serial_string("F=");
			//serial_number(countNew); // send the raw count
			//serial_comma();
			serial_number(countDiff); // send the difference
			//serial_comma();
			//serial_number(countDiff*10); // EXPERIMENTAL
			serial_break();
			
			PORTD|=(1<<PD0); // blink LED1 on all TX
			if (blankReads<50){
				PORTD|=(1<<PD4); // blink LED2 if gated
			}
			blankReads=0;
		}
		blankReads++;
		_delay_ms(1); // wait a while
		PORTD&=~(1<<PD0);
		PORTD&=~(1<<PD4);
		//serial_test();
	}	
}

================================================
FILE: ATMega328 2016-09-04 SN74LV8154/main.hex
================================================
:100000000C9434000C9449000C9449000C94490061
:100010000C9449000C9449000C9449000C9449003C
:100020000C9449000C9449000C9449000C9449002C
:100030000C9449000C9449000C9449000C9449001C
:100040000C9449000C9449000C9449000C9449000C
:100050000C9449000C9449000C9449000C944900FC
:100060000C9449000C94490011241FBECFEFD8E036
:10007000DEBFCDBF11E0A0E0B1E0E0E5F4E002C0FA
:1000800005900D92A430B107D9F70E94B1010C94EC
:1000900026020C94000087E490E09093C5008093C2
:1000A000C400E1ECF0E0808188608083E2ECF0E065
:1000B0008081846080830895982F8091C00085FF9F
:1000C000FCCF9093C6000895FC0107C08091C0004A
:1000D00085FFFCCF31969093C60090819923B1F7AC
:1000E00008958091C00085FFFCCF8AE08093C60010
:1000F0008091C00085FFFCCF8DE08093C6000895FD
:100100008091C00085FFFCCF8CE28093C600809177
:10011000C00085FFFCCF80E28093C60008956F92F7
:100120007F928F929F92AF92BF92CF92DF92EF9287
:10013000FF920F931F93CF93DF935B016C01E12C30
:100140008AECF82E8AE9082F8BE3182FC0E0D0E064
:100150008091C00085FFFCCFB501C601A8019701C1
:100160000E940402205D2093C600C801B7012AE066
:1001700030E040E050E00E940402922E832E742E64
:10018000652E2196CA30D10589F0B501C601A801B6
:1001900097010E9404025B016C01292D382D472D27
:1001A000562DC901DA017C018D01D2CFDF91CF91AB
:1001B0001F910F91FF90EF90DF90CF90BF90AF9085
:1001C0009F908F907F906F900895AC0127E030E072
:1001D00070E361E3CA01022E02C0959587950A94E7
:1001E000E2F780FF07C08091C00085FFFCCF6093DD
:1001F000C60006C08091C00085FFFCCF7093C6008A
:10020000215030408FEF2F3F380721F70895982F66
:100210008BB1806E8BB9289A913011F45D980BC028
:10022000923011F45E9807C0933011F45F9803C0C8
:10023000943009F428988CEC9AE00197F1F786B194
:10024000282F30E095E0369527959A95E1F72170B3
:100250003070349B02C02E5F3F4F339B02C02C5F37
:100260003F4F329B02C0285F3F4F319B02C0205F4F
:100270003F4F309B02C0205E3F4F1A9B02C0205C64
:100280003F4F199B02C020583F4F8BB1806E8BB9F6
:10029000289AC9010895EF92FF920F931F9384E06B
:1002A0000E9407017C010027F7FC0095102F102FFA
:1002B0000F2DFE2CEE2483E00E940701AA2797FD54
:1002C000A095BA2FE80EF91E0A1F1B1F102F0F2D25
:1002D000FE2CEE2482E00E940701AA2797FDA0953C
:1002E000BA2FE80EF91E0A1F1B1F102F0F2DFE2C10
:1002F000EE2481E00E9407019C01442737FD4095D0
:10030000542F2E0D3F1D401F511FB901CA011F91CF
:100310000F91FF90EF900895EF92FF920F931F932C
:100320000E944B017B018C010E944B01E616F706EF
:1003300008071907A9F7B701C8011F910F91FF908E
:10034000EF9008950E94710091E48091C00085FFB4
:10035000FCCF9093C6009F5F9B35B9F70E94710058
:1003600008959F92AF92BF92CF92DF92EF92FF9249
:100370000F931F93CF93DF938AB1806E8AB9209A2F
:10038000509A549A87E490E09093C5008093C400FB
:100390008091C10088608093C1008091C200846018
:1003A0008093C2009924CCECDAE002C0860175018A
:1003B0000E948C015B016C016E157F05800791071F
:1003C00019F482E38915CCF4D601C5018E199F0971
:1003D000A00BB10B7C018D0149F380E091E00E94FC
:1003E0006400C801B7010E948F000E947100589AF2
:1003F00091E399150CF05C9A99249394CE0101979E
:10040000F1F758985C98D2CFA1E21A2EAA1BBB1B19
:10041000FD010DC0AA1FBB1FEE1FFF1FA217B307D0
:10042000E407F50720F0A21BB30BE40BF50B661FE6
:10043000771F881F991F1A9469F7609570958095AA
:1004400090959B01AC01BD01CF010895F894FFCFB9
:04045000463D000025
:00000001FF


================================================
FILE: ATMega328 2016-09-07 ramp DVM/README.md
================================================
# Capacitor Charge Voltage Measurement
The idea behind this project is to measure a voltage by timing how long it takes to linearly charge a capacitor (using constant current charging) from 0V to the test voltage. This time is directly porportional to the test voltage. In this example, the AVR's internal comparator is utilized. Voltage is output through the serial port (TX pin)

# Project Page:
* http://www.swharden.com/wp/2016-09-09-adding-adc-to-microcontrollers-without-adc

![](circuit.png)

Build this circuit to charge a capacitor at a constant rate (with reset)

![](scope.png)

This is the output on my scope

![](demo data/data_touch.png)

Using an LM335 temperature sensor, these are the values I get out when I touch the sensor then let it cool again


================================================
FILE: ATMega328 2016-09-07 ramp DVM/build.bat
================================================
@echo off
del *.elf
del *.hex
avr-gcc -mmcu=atmega328p -Wall -Os -o main.elf main.c -w
avr-objcopy -j .text -j .data -O ihex main.elf main.hex
pause
avrdude -c usbtiny -p m328p -U flash:w:"main.hex":a 
pause


================================================
FILE: ATMega328 2016-09-07 ramp DVM/demo data/analyze.py
================================================
import numpy as np
import pylab

if __name__=="__main__":
    with open("capture.txt") as f:
        raw=f.read()
    vals=[]
    for line in raw.split("\n"):
        if len(line)<3:
            continue
        vals.append(int(line.strip()))
    vals=np.array(vals)
    print(vals)
    pylab.plot(vals)
    pylab.show()

================================================
FILE: ATMega328 2016-09-07 ramp DVM/demo data/capture.txt
================================================
0000119975

0000119974

0000119978

0000119978

0000119979

0000119977

0000119979

0000119980

0000119977

0000119981

0000119979

0000119984

0000119985

0000119988

0000119990

0000119991

0000119989

0000119992

0000119992

0000119993

0000119991

0000119993

0000119992

0000119992

0000119992

0000119996

0000119995

0000119993

0000119994

0000119993

0000119995

0000119995

0000119996

0000119993

0000119991

0000119995

0000119994

0000119993

0000119993

0000119995

0000119993

0000119994

0000119994

0000119993

0000119990

0000119988

0000119993

0000119994

0000119993

0000119956

0000119882

0000119810

0000119744

0000119680

0000119623

0000119569

0000119522

0000119474

0000119433

0000119391

0000119352

0000119315

0000119279

0000119242

0000119210

0000119181

0000119150

0000119125

0000119103

0000119083

0000119063

0000119041

0000119025

0000119011

0000118993

0000118975

0000118960

0000118947

0000118934

0000118924

0000118912

0000118901

0000118889

0000118881

0000118873

0000118863

0000118857

0000118851

0000118840

0000118833

0000118826

0000118818

0000118810

0000118803

0000118798

0000118791

0000118787

0000118782

0000118780

0000118774

0000118770

0000118763

0000118761

0000118759

0000118754

0000118752

0000118748

0000118750

0000118746

0000118740

0000118737

0000118734

0000118730

0000118730

0000118729

0000118728

0000118727

0000118724

0000118722

0000118722

0000118720

0000118718

0000118718

0000118715

0000118712

0000118712

0000118709

0000118707

0000118704

0000118703

0000118702

0000118702

0000118700

0000118699

0000118699

0000118702

0000118696

0000118698

0000118715

0000118735

0000118756

0000118779

0000118801

0000118819

0000118843

0000118864

0000118884

0000118901

0000118921

0000118939

0000118963

0000118979

0000118999

0000119019

0000119036

0000119055

0000119071

0000119091

0000119106

0000119123

0000119142

0000119157

0000119170

0000119186

0000119195

0000119212

0000119225

0000119236

0000119250

0000119262

0000119274

0000119287

0000119299

0000119307

0000119321

0000119332

0000119345

0000119358

0000119371

0000119381

0000119391

0000119405

0000119413

0000119420

0000119427

0000119437

0000119445

0000119455

0000119464

0000119471

0000119479

0000119486

0000119493

0000119501

0000119507

0000119514

0000119520

0000119524

0000119531

0000119538

0000119543

0000119547

0000119552

0000119556

0000119562

0000119567

0000119571

0000119578

0000119585

0000119592

0000119598

0000119602

0000119608

0000119614

0000119619

0000119620

0000119622

0000119625

0000119632

0000119633

0000119638

0000119642

0000119642

0000119648

0000119655

0000119658

0000119664

0000119666

0000119671

0000119673

0000119679

0000119682

0000119684

0000119686

0000119689

0000119689

0000119694

0000119698

0000119703

0000119706

0000119710

0000119711

0000119712

0000119718

0000119722

0000119723

0000119729

0000119732

0000119737

0000119741

0000119742

0000119745

0000119747

0000119747

0000119750

0000119753

0000119756

0000119758

0000119759

0000119763

0000119761

0000119763

0000119764

0000119765

0000119768

0000119772

0000119774

0000119772

0000119775

0000119778

0000119780

0000119783

0000119783

0000119784

0000119786

0000119787

0000119782

0000119788

0000119790

0000119792

0000119795

0000119800

0000119800

0000119803

0000119803

0000119807

0000119809

0000119808

0000119811

0000119812

0000119811

0000119813

0000119816

0000119820

0000119823

0000119826

0000119825

0000119831

0000119830

0000119831

0000119832

0000119833

0000119835

0000119833

0000119835

0000119835

0000119839

0000119840

0000119838

0000119838

0000119840

0000119839

0000119841

0000119841

0000119841

0000119843

0000119848

0000119848

0000119846

0000119846

0000119846

0000119847

0000119849

0000119848

0000119847

0000119848

0000119850

0000119851

0000119849

0000119851

0000119853

0000119855

0000119854

0000119856

0000119858

0000119857

0000119860

0000119861

0000119861

0000119861

0000119863

0000119863

0000119862

0000119864

0000119866

0000119865

0000119866

0000119863

0000119866

0000119868

0000119868

0000119868

0000119869

0000119871

0000119872

0000119876

0000119874

0000119874

0000119877

0000119877

0000119874

0000119880

0000119880

0000119877

0000119876

0000119878

0000119879

0000119878

0000119877

0000119878

0000119880

0000119879

0000119881

0000119881

0000119881

0000119882

0000119883

0000119883

0000119883

0000119884

0000119881

0000119880

0000119884

0000119886

0000119884

0000119884

0000119883

0000119884

0000119884

0000119887

0000119884

0000119885

0000119885

0000119885

0000119886

0000119886

0000119886

0000119888

0000119889

0000119889

0000119886

0000119887

0000119889

0000119893

0000119896

0000119895

0000119901

0000119899

0000119901

0000119903

0000119903

0000119905

0000119904

0000119905

0000119905

0000119906

0000119907

0000119907

0000119908

0000119909

0000119909

0000119910

0000119909

0000119911

0000119910

0000119907

0000119909

0000119909

0000119909

0000119910

0000119908

0000119910

0000119911

0000119910

0000119912

0000119913

0000119912

0000119912

0000119914

0000119915

0000119914

0000119915

0000119913

0000119915

0000119914

0000119912

0000119916

0000119916

0000119917

0000119916

0000119921

0000119922

0000119925

0000119925

0000119925

0000119927

0000119928

0000119929

0000119929

0000119932

0000119935

0000119935

0000119934

0000119937

0000119935

0000119935

0000119937

0000119940

0000119939

0000119936

0000119937

0000119936

0000119934

0000119936

0000119934

0000119935

0000119935

0000119937

0000119938

0000119936

0000119936

0000119937

0000119937

0000119937

0000119939

0000119939

0000119939

0000119937

0000119941

0000119944

0000119944

0000119945

0000119945

0000119946

0000119943

0000119945

0000119949

0000119945

0000119944

0000119945

0000119949

0000119953

0000119957

0000119959

0000119963

0000119961

0000119963

0000119964

0000119963

0000119963

0000119961

0000119964

0000119962

0000119960

0000119962

0000119963

0000119966

0000119965

0000119968

0000119965

0000119963

0000119965

0000119964

0000119961

0000119963

0000119962

0000119962

0000119959

0000119964

0000119962

0000119960

0000119962

0000119960

0000119960

0000119962

0000119963

0000119964

0000119967

0000119967

0000119967

0000119969

0000119968

0000119968

0000119970

0000119967

0000119967

0000119965

0000119965

0000119967

0000119962

0000119964

0000119962

0000119965

0000119962

0000119963

0000119965

0000119965

0000119962

0000119964

0000119965

0000119965

0000119964

0000119965

0000119968

0000119963

0000119965

0000119967

0000119969

0000119967

0000119968

0000119966

0000119967

0000119964

0000119964

0000119965

0000119966

0000119965

0000119965

0000119965

0000119963

0000119964

0000119968

0000119970

0000119970

0000119972

0000119973

0000119973

0000119973

0000119973

0000119976

0000119973

0000119972

0000119975

0000119973

0000119970

0000119973

0000119973

0000119974

0000119974

0000119973

0000119974

0000119975

0000119976

0000119977

0000119976

0000119977

0000119976

0000119977

0000119979

0000119978

0000119982

0000119980

0000119982

0000119979

0000119982

0000119982

0000119982

0000119981

0000119981

0000119981

0000119978

0000119976

0000119979

0000119981

0000119977

0000119980

0000119977

0000119982

0000119984

0000119981

0000119980

0000119980

0000119978

0000119979

0000119978

0000119980

0000119977

0000119980

0000119979

0000119976

0000119975

0000119974

0000119973

0000119978

0000119978

0000119977

0000119978

0000119980

0000119978

0000119982

0000119979

0000119977

0000119973

0000119973

0000119973

0000119973

0000119974

0000119975

0000119973

0000119972

0000119968

0000119969

0000119970

0000119967

0000119968

0000119969

0000119974

0000119971

0000119974

0000119972

0000119977

0000119977

0000119975

0000119977

0000119979

0000119979

0000119976

0000119979

0000119977

0000119980

0000119979

0000119976

0000119971

0000119969

0000119970

0000119974

0000119975

0000119977

0000119976

0000119977

0000119973

0000119974

0000119975

0000119976

0000119977

0000119979

0000119982

0000119980

0000119980

0000119977

0000119978

0000119979

0000119981

0000119983

0000119984

0000119983

0000119984

0000119987

0000119987

0000119985

0000119987

0000119988

0000119988

0000119987

0000119989

0000119989

0000119987

0000119987

0000119989

0000119991

0000119990

0000119992

0000119991

0000119990

0000119989

0000119992

0000119988

0000119990

0000119988

0000119987

0000119987

0000119989

0000119988

0000119989

0000119989

0000119989

0000119989

0000119987

0000119987

0000119988

0000119990

0000119987

0000119991

0000119987

0000119989

0000119989

0000119992

0000119994

0000119993

0000119992

0000119990

0000119990

0000119991

0000119990

0000119990

0000119990

0000119994

0000119992

0000119993

0000119996

0000119994

0000119995

0000119993

0000119995

0000119994

0000119993

0000119995

0000119997

0000119993

0000119997

0000119997

0000119995

0000119997

0000120001

0000119996

0000119996

0000119995

0000119996

0000119998

0000119998

0000119995

0000119999

0000119996

0000119998

0000119996

0000119997

0000119995

0000119995

0000119995

0000119996

0000119999

0000119996

0000119994

0000119998

0000119998

0000119996

0000119999

0000119998

0000119997

0000119998

0000119996

0000119997

0000119997

0000119999

0000119999

0000120000

0000120000

0000119999

0000119999

0000119998

0000119998

0000119999

0000119998

0000119999

0000119999

0000119998

0000119998

0000119998

0000119999

0000120000

0000120001

0000119998

0000119998

0000119999

0000119997

0000119996

0000119998

0000120001

0000120000

0000120003

0000120002

0000120000

0000120002

0000120003

0000120002

0000120004

0000120002

0000120002

0000120000

0000120001

0000120001

0000120001

0000120001

0000120004

0000120005

0000120004

0000120007

0000120003

0000120007

0000120008

0000120009

0000120012

0000120009

0000120011

0000120012

0000120010

0000120015

0000120014

0000120011

0000120011

0000120011

0000120010

0000120010

0000120011

0000120015

0000120012

0000120015

0000120013

0000120012

0000120012

0000120012

0000120015

0000120011

0000120011

0000120013

0000120014

0000120012

0000120012

0000120011

0000120013

0000120011

0000120011

0000120011

0000120010

0000120011

0000120009

0000120010

0000120009

0000120010

0000120011

0000120008

0000120007

0000120008

0000120007

0000120010

0000120006

0000120007

0000120007

0000120009

0000120006

0000120009

0000120008

0000120007

0000120007

0000120008

0000120008

0000120005

0000120005

0000120007

0000120010

0000120009

0000120008

0000120009

0000120008

0000120008

0000120007

0000120011

0000120008

0000120010

0000120012

0000120010

0000120008

0000120008

0000120009

0000120007

0000120007

0000120009

0000120007

0000120006

0000120003

0000120003

0000120006

0000120005

0000120004

0000120003

0000120003

0000120001

0000120002

0000120002

0000120001

0000120000

0000120000

0000120001

0000120000

0000120004

0000120000

0000120002

0000120001

0000120003

0000120004

0000120005

0000120006

0000120005

0000120005

0000120008

0000120008

0000120009

0000120009

0000120009

0000120009

0000120013

0000120011

0000120008

0000120009

0000120010

0000120008

0000120009

0000120008

0000120007

0000120005

0000120006

0000120006

0000120006

0000120005

0000120003

0000120004

0000120005

0000120005

0000120005

0000120007

0000120005

0000120006

0000120007

0000120007

0000120005

0000120006

0000120008

0000120007

0000120005

0000120009

0000120009

0000120008

0000120008

0000120009

0000120009

0000120010

0000120010

0000120011

0000120012

0000120010

0000120007

0000120010

0000120010

0000120008

0000120010

0000120010

0000120011

0000120009

0000120015

0000120013

0000120012

0000120012

0000120014

0000120012

0000120013

0000120012

0000120010

0000120010

0000120011

0000120010

0000120010

0000120010

0000120010

0000120010

0000120008

0000120007

0000120007

0000120008

0000120006

0000120007

0000120007

0000120006

0000120008

0000120006

0000120008

0000120007

0000120004

0000120004

0000120006

0000120006

0000120003

0000120003

0000120004

0000120001

0000120002

0000120001

0000120000

0000119997

0000119999

0000120000

0000120001

0000120000

0000120002

0000119999

0000120001

0000120004

0000120001

0000120000

0000119999

0000120002

0000120005

0000120005

0000120005

0000120009

0000120008

0000120006

0000120004

0000120006

0000120005

0000120004

0000120004

0000120005

0000120002

0000120000

0000120001

0000120002

0000120001

0000119999

0000120002

0000120000

0000120000

0000119999

0000119999

0000120002

0000120000

0000120003

0000120002

0000120002

0000120002

0000120004

0000120003

0000119999

0000120001

0000120001

0000120002

0000120001

0000120003

0000120003

0000120003

0000120005

0000120004

0000120005

0000120001

0000120002

0000119999

0000120000

0000119999

0000120000

0000120001

0000120002

0000119998

0000119999

0000119997

0000119997

0000119997

0000119999

0000120000

0000119995

0000119997

0000119999

0000119998

0000120000

0000119997

0000119999

0000119997

0000119995

0000119995

0000119994

0000119992

0000119994

0000119995

0000119995

0000119996

0000119993

0000119995

0000119993

0000119994

0000119995

0000119996

0000119995

0000119993

0000119994

0000119996

0000119997

0000119997

0000120000

0000119998

0000119998

0000120000

0000119998

0000119999

0000119997

0000119999

0000119998

0000119996

0000119995

0000119997

0000119995

0000119994

0000119995

0000119996

0000119996

0000119995

0000119996

0000119998

0000119996

0000119996

0000119995

0000119993

0000119991

0000119992

0000119992

0000119992

0000119991

0000119994

0000119993

0000119992

0000119992

0000119990

0000119989

0000119991

0000119989

0000119988

0000119988

0000119992

0000119991

0000119989

0000119989

0000119991

0000119988

0000119990

0000119989

0000119988

0000119990

0000119992

0000119990

0000119989

0000119990

0000119992

0000119992

0000119995

0000119990

0000119992

0000119993

0000119994

0000119995

0000119993

0000119993

0000119993

0000119992

0000119991

0000119991

0000119993

0000119993

0000119995

0000119997

0000119994

0000119994

0000119996

0000119996

0000119996

0000119996

0000119997

0000119997

0000119994

0000119994

0000119996

0000119996

0000119996

0000119996

0000119998

0000119993

0000119994

0000119998

0000119996

0000119994

0000119994

0000119995

0000119996

0000119994

0000119995

0000119995

0000119996

0000119995

0000119990

0000119991

0000119988

0000119987

0000119986

0000119984

0000119987

0000119986

0000119984

0000119983

0000119983

0000119984

0000119985

0000119982

0000119984

0000119985

0000119987

0000119987

0000119985

0000119985

0000119987

0000119986

0000119987

0000119988

0000119989

0000119987

0000119989

0000119989

0000119991

0000119987

0000119987

0000119985

0000119987

0000119985

0000119985

0000119983

0000119985

0000119986

0000119989

0000119990

0000119987

0000119988

0000119992

0000119991

0000119988

0000119987

0000119988

0000119989

0000119989

0000119990

0000119990

0000119988

0000119988

0000119989

0000119987

0000119990

0000119991

0000119988

0000119989

0000119991

0000119990

0000119988

0000119991

0000119993

0000119991

0000119992

0000119994

0000119991

0000119990

0000119989

0000119993

0000119992

0000119992

0000119992

0000119990

0000119992

0000119992

0000119992

0000119993

0000119994

0000119993

0000119990

0000119992

0000119992

0000119991

0000119993

0000119993

0000119992

0000119992

0000119992

0000119991

0000119991

0000119995

0000119987

0000119988

0000119993

0000119993

0000119987

0000119986

0000119987

0000119983

0000119986

0000119989

0000119993

0000119997

0000119994

0000119997

0000119997

0000119998

0000119995

0000119995

0000119994

0000119993

0000119993

0000119991

0000119993

0000119992

0000119991

0000119994

0000119990

0000119991

0000119992

0000119991

0000119994

0000119993

0000119998

0000119996

0000119995

0000119998

0000119999

0000120000

0000120002

0000120003

0000119999

0000119998

0000119997

0000119997

0000119996

0000119995

0000119994

0000119997

0000119999

0000120002

0000120003

0000120000

0000120002

0000120003

0000120004

0000120005

0000120004

0000120006

0000120006

0000120005

0000120005

0000120003

0000120006

0000120005

0000120008

0000120008

0000120006

0000120005

0000120008

0000120008

0000120008

0000120008

0000120008

0000120008

0000120010

0000120011

0000120012

0000120011

0000120009

0000120009

0000120011

0000120009

0000120010

0000120013

0000120010

0000120011

0000120011

0000120013

0000120009

0000120011

0000120010

0000120010

0000120011

0000120013

0000120014

0000120011

0000120011

0000120010

0000120012

0000120011

0000120009

0000120010

0000120012

0000120011

0000120013

0000120013

0000120012

0000120013

0000120012

0000120014

0000120012

0000120011

0000120012

0000120011

0000120011

0000120009

0000120012

0000120008

0000120010

0000120010

0000120010

0000120010

0000120011

0000120008

0000120010

0000120007

0000120005

0000120007

0000120008

0000120007

0000120009

0000120010

0000120008

0000120012

0000120008

0000120012

0000120013

0000120012

0000120013

0000120012

0000120016

0000120014

0000120016

0000120016

0000120014

0000120020

0000120018

0000120016

0000120019

0000120017

0000120017

0000120017

0000120019

0000120017

0000120018

0000120020

0000120022

0000120017

0000120018

0000120019

0000120018

0000120016

0000120015

0000120017

0000120014

0000120014

0000120014

0000120012

0000120012

0000120014

0000120012

0000120017

0000120012

0000120014

0000120013

0000120012

0000120012

0000120009

0000120009

0000120007

0000120010

0000120009

0000120010

0000120010

0000120012

0000120010

0000120010

0000120009

0000120010

0000120011

0000120011

0000120013

0000120012

0000120016

0000120012

0000120014

0000120016

0000120013

0000120012

0000120014

0000120016

0000120014

0000120016

0000120015

0000120018

0000120019

0000120016

0000120021

0000120022

0000120018

0000120017

0000120020

0000120019

0000120016

0000120018

0000120018

0000120016

0000120018

0000120015

0000120015

0000120015

0000120014

0000120018

0000120014

0000120015

0000120016

0000120015

0000120013

0000120013

0000120012

0000120014

0000120011

0000120013

0000120014

0000120014

0000120013

0000120014

0000120016

0000120016

0000120016

0000120018

0000120018

0000120018

0000120015

0000120015

0000120014

0000120014

0000120015

0000120014

0000120012

0000120012

0000120011

0000120014

0000120013

0000120012

0000120010

0000120011

0000120013

0000120014

0000120014

0000120014

0000120013

0000120016

0000120013

0000120012

0000120013

0000120015

0000120015

0000120014

0000120014

0000120018

0000120014

0000120014

0000120018

0000120019

0000120018

0000120021

0000120021

0000120023

0000120025

0000120023

0000120025

0000120024

0000120022

0000120022

0000120026

0000120026

0000120024

0000120026

0000120027

0000120026

0000120026

0000120024

0000120025

0000120024

0000120023

0000120026

0000120028

0000120025

0000120029

0000120027

0000120026

0000120028

0000120027

0000120028

0000120028

0000120025

0000120027

0000120024

0000120024

0000120027

0000120026

0000120023

0000120025

0000120027

0000120026

0000120024

0000120023

0000120027

0000120022

0000120024

0000120022

0000120022

0000120025

0000120026

0000120028

0000120028

0000120026

0000120026

0000120030

0000120027

0000120027

0000120027

0000120026

0000120023

0000120023

0000120023

0000120022

0000120023

0000120023

0000120024

0000120021

0000120021

0000120023

0000120023

0000120023

0000120025

0000120027

0000120027

0000120028

0000120024

0000120026

0000120023

0000120023

0000120022

0000120022

0000120021

0000120021

0000120023

0000120024

0000120024

0000120025

0000120025

0000120023

0000120023

0000120020

0000120025

0000120024

0000120023

0000120024

0000120024

0000120022

0000120019

0000120022

0000120021

0000120019

0000120022

0000120019

0000120018

0000120015

0000120016

0000120015

0000120016

0000120014

0000120014

0000120014

0000120012

0000120012

0000120011

0000120011

0000120009

0000120012

0000120013

0000120011

0000120010

0000120010

0000120010

0000120011

0000120011

0000120012

0000120012

0000120015

0000120018

0000120018

0000120017

0000120018

0000120021

0000120021

0000120018

0000120021

0000120021

0000120017

0000120019

0000120018

0000120018

0000120017

0000120017

0000120014

0000120018

0000120020

0000120020

0000120021

0000120021

0000120024

0000120023

0000120024

0000120023

0000120019

0000120019

0000120017

0000120016

0000120019

0000120020

0000120020

0000120019

0000120020

0000120019

0000120019

0000120019

0000120018

0000120017

0000120016

0000120018

0000120016

0000120017

0000120019

0000120019

0000120016

0000120016

0000120017

0000120018

0000120015

0000120014

0000120014

0000120016

0000120014

0000120013

0000120015

0000120013

0000120014

0000120012

0000120014

0000120013

0000120015

0000120016

0000120017

0000120017

0000120019

0000120021

0000120020

0000120019

0000120020

0000120020

0000120023

0000120023

0000120021

0000120022

0000120025

0000120027

0000120031

0000120030

0000120034

0000120037

0000120037

0000120037

0000120040

0000120040

0000120038

0000120039

0000120040

0000120038

0000120039

0000120037

0000120037

0000120040

0000120034

0000120032

0000120036

0000120033

0000120034

0000120033

0000120036

0000120034

0000120035

0000120037

0000120036

0000120037

0000120035

0000120038

0000120036

0000120033

0000120034

0000120032

0000120031

0000120030

0000120031

0000120033

0000120031

0000120030

0000120029

0000120033

0000120033

0000120034

0000120035

0000120033

0000120034

0000120036

0000120036

0000120036

0000120035

0000120035

0000120037

0000120035

0000120034

0000120036

0000120034

0000120034

0000120032

0000120035

0000120034

0000120031

0000120033

0000120034

0000120037

0000120035

0000120035

0000120035

0000120035

0000120034

0000120033

0000120033

0000120032

0000120032

0000120029

0000120030

0000120031

0000120032

0000120031

0000120032

0000120032

0000120030

0000120032

0000120032

0000120032

0000120032

0000120030

0000120031

0000120031

0000120032

0000120029

0000120030

0000120030

0000120029

0000120030

0000120030

0000120031

0000120029

0000120028

0000120026

0000120027

0000120027

0000120029

0000120030

0000120029

0000120028

0000120031

0000120031

0000120031

0000120028

0000120032

0000120031

0000120030

0000120030

0000120034

0000120033

0000120033

0000120033

0000120034

0000120039

0000120037

0000120037

0000120036

0000120036

0000120035

0000120035

0000120035

0000120036

0000120034

0000120036

0000120037

0000120039

0000120038

0000120038

0000120041

0000120036

0000120036

0000120033

0000120035

0000120033

0000120035

0000120036

0000120036

0000120033

0000120033

0000120035

0000120035

0000120032

0000120034

0000120033

0000120034

0000120032

0000120033

0000120033

0000120033

0000120034

0000120032

0000120029

0000120029

0000120029

0000120030

0000120031

0000120033

0000120031

0000120033

0000120035

0000120033

0000120032

0000120032

0000120036

0000120031

0000120031

0000120031

0000120032

0000120030

0000120030

0000120027

0000120029

0000120030

0000120030

0000120026

0000120027

0000120026

0000120026

0000120024

0000120025

0000120026

0000120026

0000120026

0000120029

0000120028

0000120031

0000120029

0000120031

0000120029

0000120029

0000120028

0000120030

0000120031

0000120029

0000120029

0000120031

0000120030

0000120029

0000120029

0000120028

0000120031

0000120033

0000120030

0000120031

0000120031

0000120030

0000120030

0000120028

0000120025

0000120026

0000120029

0000120029

0000120031

0000120032

0000120034

0000120034

0000120035

0000120033

0000120036

0000120034

0000120033

0000120036

0000120034

0000120032

0000120033

0000120031

0000120030

0000120030

0000120030

0000120028

0000120029

0000120028

0000120025

0000120024

0000120023

0000120024

0000120023

0000120024

0000120026

0000120024

0000120028

0000120025

0000120026

0000120028

0000120029

0000120032

0000120033

0000120034

0000120033

0000120033

0000120033

0000120033

0000120030

0000120034

0000120034

0000120036

0000120035

0000120034

0000120037

0000120034

0000120035

0000120034

0000120033

0000120031

0000120031

0000120030

0000120028

0000120029

0000120029

0000120030

0000120029

0000120030

0000120031

0000120028

0000120029

0000120028

0000120027

0000120029

0000120026

0000120024

0000120025

0000120024

0000120023

0000120023

0000120023

0000120022

0000120021

0000120022

0000120022

0000120020

0000120019

0000120022

0000120018

0000120017

0000120014

0000120017

0000120019

0000120023

0000120022

0000120025

0000120022

0000120025

0000120027

0000120024

0000120025

0000120018

0000120017

0000120018

0000120018

0000120016

0000120011

0000120008

0000120002

0000120002

0000120005

0000120007

0000120009

0000120012

0000120014

0000120014

0000120014

0000120017

0000120017

0000120018

0000120020

0000120020

0000120019

0000120022

0000120022

0000120024

0000120023

0000120026

0000120029

0000120031

0000120033

0000120033

0000120035

0000120035

0000120039

0000120041

0000120042

0000120043

0000120046

0000120048

0000120049

0000120051

0000120051

0000120054

0000120056

0000120057

0000120057

0000120059

0000120060

0000120062

0000120064

0000120064

0000120064

0000120065

0000120067

0000120070

0000120071

0000120070

0000120069

0000120073

0000120077

0000120077

0000120080

0000120079

0000120078

0000120079

0000120083

0000120080

0000120081

0000120082

0000120077

0000120083

0000120081

0000120082

0000120081

0000120080

0000120080

0000120082

0000120084

0000120081

0000120077

0000120080

0000120079

0000120077

0000120075

0000120074

0000120075

0000120075

0000120075

0000120074

0000120071

0000120075

0000120073

0000120072

0000120074

0000120073

0000120073

0000120074

0000120072

0000120072

0000120075

0000120074

0000120079

0000120080

0000120080

0000120083

0000120083

0000120085

0000120084

0000120084

0000120086

0000120088

0000120088

0000120088

0000120089

0000120088

0000120089

0000120089

0000120088

0000120089

0000120087

0000120088

0000120087

0000120087

0000120084

0000120083

0000120083

0000120083

0000120083

0000120081

0000120078

0000120078

0000120077

0000120077

0000120078

0000120076

0000120076

0000120078

0000120077

0000120078

0000120077

0000120080

0000120080

0000120078

0000120078

0000120079

0000120080

0000120080

0000120081

0000120080

0000120081

0000120077

0000120080

0000120078

0000120080

0000120079

0000120079

0000120083

0000120083

0000120085

0000120091

0000120090

0000120091

0000120091

0000120090

0000120089

0000120089

0000120088

0000120087

0000120086

0000120086

0000120088

0000120089

0000120089

0000120087

0000120088

0000120091

0000120095

0000120095

0000120096

0000120097

0000120094

0000120096

0000120095

0000120098

0000120099

0000120101

0000120104

0000120107

0000120105

0000120107

0000120107

0000120108

0000120109

0000120111

0000120112

0000120114

0000120113

0000120113

0000120117

0000120113

0000120115

0000120114

0000120119

0000120116

0000120115

0000120115

0000120117

0000120116

0000120116

0000120120

0000120121

0000120119

0000120122

0000120119

0000120123

0000120123

0000120124

0000120124

0000120123

0000120122

0000120124

0000120127

0000120127

0000120125

0000120126

0000120128

0000120130

0000120130

0000120132

0000120128

0000120131

0000120131

0000120133

0000120133

0000120135

0000120134

0000120134

0000120138

0000120137

0000120135

0000120136

0000120139

0000120138

0000120140

0000120141

0000120141

0000120138

0000120140

0000120138

0000120139

0000120139

0000120138

0000120138

0000120139

0000120137

0000120136

0000120138

0000120137

0000120134

0000120134

0000120133

0000120133

0000120131

0000120130

0000120131

0000120130

0000120134

0000120130

0000120134

0000120133

0000120135

0000120136

0000120139

0000120139

0000120135

0000120140

0000120138

0000120136

0000120136

0000120138

0000120139

0000120139

0000120141

0000120141

0000120141

0000120140

0000120137

0000120136

0000120137

0000120136

0000120136

0000120136

0000120135

0000120135

0000120135

0000120136

0000120134

0000120131

0000120134

0000120136

0000120134

0000120135

0000120135

0000120136

0000120135

0000120135

0000120135

0000120134

0000120134

0000120132

0000120132

0000120132

0000120130

0000120127

0000120129

0000120127

0000120125

0000120126

0000120127

0000120125

0000120123

0000120125

0000120122

0000120124

0000120121

0000120125

0000120125

0000120120

0000120121

0000120123

0000120123

0000120125

0000120123

0000120122

0000120125

0000120126

0000120125

0000120124

0000120126

0000120125

0000120125

0000120125

0000120125

0000120124

0000120125

0000120125

0000120127

0000120128

0000120127

0000120128

0000120130

0000120131

0000120134

0000120133

0000120138

0000120138

0000120139

0000120137

0000120138

0000120134

0000120139

0000120140

0000120141

0000120141

0000120138

0000120142

0000120141

0000120141

0000120140

0000120143

0000120142

0000120143

0000120143

0000120145

0000120144

0000120144

0000120144

0000120146

0000120146

0000120146

0000120147

0000120148

0000120147

0000120146

0000120147

0000120146

0000120144

0000120144

0000120144

0000120140

0000120139

0000120139

0000120137

0000120138

0000120136

0000120135

0000120136

0000120135

0000120138

0000120135

0000120138

0000120139

0000120136

0000120138

0000120136

0000120138

0000120134

0000120134

0000120135

0000120133

0000120131

0000120132

0000120132

0000120129

0000120128

0000120132

0000120130

0000120129

0000120128

0000120128

0000120130

0000120128

0000120125

0000120124

0000120126

0000120124

0000120125

0000120123

0000120120

0000120122

0000120120

0000120123

0000120122

0000120126

0000120124

0000120124

0000120122

0000120123

0000120125

0000120125

0000120125

0000120125

0000120124

0000120124

0000120121

0000120123

0000120119

0000120118

0000120119

0000120118

0000120116

0000120117

0000120116

0000120115

0000120117

0000120115

0000120113

0000120114

0000120112

0000120115

0000120113

0000120113

0000120113

0000120113

0000120111

0000120113

0000120114

0000120112

0000120111

0000120111

0000120112

0000120113

0000120112

0000120115

0000120116

0000120118

0000120116

0000120116

0000120116

0000120118

0000120114

0000120116

0000120117

0000120115

0000120115

0000120112

0000120118

0000120115

0000120116

0000120117

0000120119

0000120119

0000120118

0000120118

0000120119

0000120118

0000120118

0000120117

0000120119

0000120115

0000120114

0000120113

0000120111

0000120111

0000120109

0000120112

0000120109

0000120108

0000120109

0000120109

0000120106

0000120106

0000120105

0000120105

0000120106

0000120108

0000120106

0000120107

0000120106

0000120106

0000120108

0000120110

0000120109

0000120112

0000120111

0000120110

0000120112

0000120114

0000120115

0000120114

0000120112

0000120114

0000120116

0000120117

0000120115

0000120114

0000120113

0000120116

0000120113

0000120114

0000120113

0000120112

0000120112

0000120112

0000120113

0000120115

0000120113

0000120115

0000120114

0000120115

0000120114

0000120116

0000120113

0000120112

0000120111

0000120111

0000120112

0000120111

0000120111

0000120109

0000120109

0000120112

0000120109

0000120107

0000120109

0000120110

0000120112

0000120109

0000120110

0000120111

0000120111

0000120110

0000120111

0000120111

0000120111

0000120108

0000120109

0000120112

0000120113

0000120113

0000120111

0000120114

0000120113

0000120113

0000120114

0000120113

0000120114

0000120114

0000120114

0000120113

0000120115

0000120116

0000120114

0000120113

0000120114

0000120112

0000120111

0000120110

0000120111

0000120110

0000120112

0000120109

0000120109

0000120111

0000120107

0000120108

0000120106

0000120107

0000120110

0000120107

0000120105

0000120106

0000120106

0000120103

0000120105

0000120104

0000120101

0000120101

0000120100

0000120101

0000120099

0000120099

0000120095

0000120098

0000120098

0000120095

0000120098

0000120098

0000120093

0000120094

0000120093

0000120094

0000120093

0000120094

0000120094

0000120092

0000120092

0000120091

0000120090

0000120088

0000120088

0000120088

0000120090

0000120088

0000120086

0000120085

0000120089

0000120090

0000120085

0000120085

0000120086

0000120087

0000120086

0000120087

0000120088

0000120087

0000120088

0000120087

0000120085

0000120088

0000120088

0000120088

0000120086

0000120086

0000120088

0000120087

0000120089

0000120087

0000120091

0000120091

0000120089

0000120088

0000120089

0000120090

0000120090

0000120088

0000120088

0000120089

0000120089

0000120089

0000120090

0000120091

0000120090

0000120090

0000120090

0000120091

0000120090

0000120091

0000120092

0000120091

0000120089

0000120091

0000120093

0000120093

0000120094

0000120092

0000120094

0000120096

0000120094

0000120093

0000120093

0000120098

0000120096

0000120098

0000120098

0000120098

0000120095

0000120094

0000120094

0000120094

0000120093

0000120092

0000120093

0000120092

0000120095

0000120094

0000120093

0000120096

0000120092

0000120093

0000120094

0000120096

0000120094

0000120095

0000120094

0000120093

0000120095

0000120094

0000120094

0000120092

0000120093

0000120094

0000120091

0000120093

0000120092

0000120092

0000120091

0000120092

0000120095

0000120092

0000120093

0000120091

0000120093

0000120090

0000120093

0000120092

0000120094

0000120093

0000120093

0000120095

0000120095

0000120093

0000120094

0000120093

0000120093

0000120093

0000120098

0000120095

0000120095

0000120098

0000120099

0000120099

0000120098

0000120098

0000120100

0000120099

0000120098

0000120097

0000120098

0000120098

0000120099

0000120098

0000120097

0000120098

0000120101

0000120101

0000120101

0000120099

0000120101

0000120098

0000120098

0000120096

0000120097

0000120098

0000120099

0000120098

0000120097

0000120098

0000120100

0000120094

0000120097

0000120099

0000120099

0000120099

0000120100

0000120101

0000120103

0000120102

0000120103

0000120103

0000120102

0000120104

0000120107

0000120107

0000120104

0000120105

0000120105

0000120106

0000120101

0000120103

0000120103

0000120103

0000120102

0000120103

0000120102

0000120100

0000120100

0000120103

0000120101

0000120101

0000120102

0000120102

0000120099

0000120102

0000120103

0000120101

0000120099

0000120100

0000120101

0000120103

0000120100

0000120099

0000120099

0000120099

0000120099

0000120098

0000120096

0000120098

0000120096

0000120096

0000120095

0000120096

0000120095

0000120097

0000120095

0000120095

0000120097

0000120098

0000120096

0000120095

0000120095

0000120094

0000120094

0000120093

0000120093

0000120093

0000120094

0000120095

0000120092

0000120096

0000120097

0000120098

0000120098

0000120100

0000120102

0000120100

0000120100

0000120101

0000120100

0000120099

0000120100

0000120099

0000120101

0000120102

0000120104

0000120104

0000120105

0000120104

0000120103

0000120104

0000120101

0000120101

0000120104

0000120103

0000120104

0000120104

0000120104

0000120102

0000120105

0000120102

0000120102

0000120103

0000120105

0000120105

0000120103

0000120103

0000120104

0000120103

0000120104

0000120101

0000120103

0000120102

0000120104

0000120103

0000120103

0000120103

0000120102

0000120102

0000120104

0000120103

0000120105

0000120102

0000120103

0000120104

0000120104

0000120102

0000120104

0000120102

0000120104

0000120104

0000120100

0000120102

0000120104

0000120100

0000120101

0000120102

0000120100

0000120102

0000120101

0000120100

0000120099

0000120097

0000120100

0000120097

0000120097

0000120099

0000120099

0000120097

0000120098

0000120100

0000120100

0000120097

0000120100

0000120099

0000120098

0000120095

0000120095

0000120098

0000120099

0000120100

0000120101

0000120100

0000120099

0000120101

0000120099

0000120098

0000120096

0000120095

0000120096

0000120096

0000120094

0000120094

0000120093

0000120090

0000120089

0000120090

0000120088

0000120090

0000120090

0000120089

0000120090

0000120090

0000120090

0000120088

0000120088

0000120088

0000120087

0000120089

0000120089

0000120089

0000120091

0000120093

0000120090

0000120091

0000120092

0000120092

0000120090

0000120089

0000120088

0000120091

0000120087

0000120088

0000120086

0000120088

0000120089

0000120087

0000120087

0000120086

0000120087

0000120090

0000120089

0000120090

0000120092

0000120093

0000120094

0000120094

0000120094

0000120093

0000120091

0000120093

0000120089

0000120091

0000120089

0000120090

0000120089

0000120090

0000120091

0000120090

0000120089

0000120092

0000120092

0000120088

0000120089

0000120087

0000120089

0000120088

0000120087

0000120087

0000120089

0000120088

0000120089

0000120086

0000120086

0000120087

0000120086

0000120087

0000120084

0000120084

0000120083

0000120083

0000120080

0000120080

0000120081

0000120081

0000120080

0000120081

0000120080

0000120080

0000120081

0000120082

0000120081

0000120082

0000120084

0000120082

0000120084

0000120083

0000120085

0000120085

0000120083

0000120087

0000120084

0000120083

0000120084

0000120084

0000120085

0000120083

0000120085

0000120086

0000120088

0000120088

0000120088

0000120089

0000120089

0000120088

0000120087

0000120086

0000120086

0000120084

0000120088

0000120087

0000120087

0000120086

0000120089

0000120086

0000120086

0000120087

0000120084

0000120087

0000120083

0000120085

0000120085

0000120084

0000120084

0000120086

0000120084

0000120083

0000120084

0000120083

0000120082

0000120082

0000120081

0000120085

0000120083

0000120082

0000120081

0000120081

0000120083

0000120082

0000120082

0000120083

0000120084

0000120086

0000120086

0000120088

0000120084

0000120085

0000120088

0000120086

0000120089

0000120086

0000120089

0000120088

0000120088

0000120087

0000120088

0000120087

0000120088

0000120086

0000120090

0000120088

0000120089

0000120087

0000120089

0000120090

0000120091

0000120091

0000120094

0000120092

0000120089

0000120092

0000120091

0000120091

0000120092

0000120092

0000120089

0000120088

0000120087

0000120090

0000120088

0000120086

0000120086

0000120086

0000120085

0000120087

0000120086

0000120088

0000120086

0000120087

0000120087

0000120086

0000120087

0000120086

0000120088

0000120089

0000120090

0000120088

0000120089

0000120088

0000120087

0000120085

0000120086

0000120089

0000120088

0000120086

0000120085

0000120088

0000120087

0000120087

0000120090

0000120091

0000120090

0000120091

0000120090

0000120089

0000120090

0000120091

0000120091

0000120089

0000120090

0000120090

0000120086

0000120090

0000120087

0000120089

0000120089

0000120088

0000120090

0000120089

0000120087

0000120089

0000120087

0000120089

0000120090

0000120089

0000120089

0000120088

0000120086

0000120086

0000120083

0000120086

0000120087

0000120087

0000120088

0000120087

0000120089

0000120087

0000120089

0000120088

0000120089

0000120086

0000120088

0000120089

0000120087

0000120086

0000120085

0000120086

0000120086

0000120086

0000120088

0000120088

0000120088

0000120088

0000120090

0000120090

0000120091

0000120089

0000120089

0000120089

0000120089

0000120091

0000120092

0000120089

0000120092

0000120092

0000120092

0000120092

0000120093

0000120093

0000120094

0000120091

0000120091

0000120093

0000120090

0000120089

0000120087

0000120091

0000120091

0000120091

0000120094

0000120093

0000120093

0000120093

0000120095

0000120096

0000120096

0000120098

0000120094

0000120093

0000120096

0000120095

0000120094

0000120096

0000120100

0000120102

0000120099

0000120102

0000120103

0000120101

0000120104

0000120104

0000120103

0000120103

0000120102

0000120104

0000120102

0000120106

0000120104

0000120105

0000120104

0000120104

0000120105

0000120106

0000120106

0000120105

0000120104

0000120107

0000120105

0000120105

0000120106

0000120104

0000120104

0000120104

0000120103

0000120105

0000120104

0000120103

0000120101

0000120100

0000120102

0000120103

0000120102

0000120101

0000120099

0000120100

0000120098

0000120098

0000120099

0000120097

0000120098

0000120093

0000120095

0000120097

0000120093

0000120096

0000120096

0000120093

0000120094

0000120093

0000120096

0000120093

0000120094

0000120093

0000120095

0000120092

0000120090

0000120093

0000120092

0000120090

0000120091

0000120086

0000120085

0000120089

0000120087

0000120086

0000120086

0000120086

0000120085

0000120086

0000120087

0000120084

0000120084

0000120087

0000120087

0000120090

0000120091

0000120092

0000120093

0000120093

0000120095

0000120096

0000120100

0000120100

0000120098

0000120102

0000120103

0000120102

0000120100

0000120102

0000120101

0000120103

0000120102

0000120101

0000120103

0000120104

0000120104

0000120106

0000120106

0000120104

0000120104

0000120104

0000120107

0000120107

0000120106

0000120109

0000120107

0000120106

0000120108

0000120108

0000120106

0000120105

0000120110

0000120107

0000120110

0000120109

0000120110

0000120112

0000120111

0000120114

0000120114

0000120114

0000120114

0000120112

0000120112

0000120111

0000120112

0000120115

0000120114

0000120112

0000120111

0000120111

0000120113

0000120108

0000120112

0000120111

0000120109

0000120114

0000120112

0000120112

0000120110

0000120109

0000120112

0000120111

0000120112

0000120110

0000120114

0000120115

0000120117

0000120117

0000120115

0000120115

0000120116

0000120115

0000120115

0000120118

0000120115

0000120116

0000120114

0000120112

0000120114

0000120112

0000120113

0000120113

0000120113

0000120113

0000120112

0000120114

0000120113

0000120113

0000120112

0000120112

0000120113

0000120115

0000120115

0000120110

0000120112

0000120114

0000120113

0000120112

0000120112

0000120113

0000120113

0000120117

0000120114

0000120116

0000120115

0000120116

0000120116

0000120117

0000120117

0000120119

0000120118

0000120118

0000120117

0000120116

0000120116

0000120119

0000120117

0000120114

0000120115

0000120119

0000120116

0000120116

0000120118

0000120116

0000120117

0000120116

0000120116

0000120116

0000120117

0000120118

0000120115

0000120117

0000120118

0000120117

0000120114

0000120116

0000120112

0000120111

0000120114

0000120112

0000120112

0000120112

0000120112

0000120109

0000120111

0000120107

0000120108

0000120106

0000120106

0000120104

0000120107

0000120107

0000120105

0000120109

0000120109

0000120109

0000120108

0000120107

0000120110

0000120108

0000120111

0000120111

0000120112

0000120112

0000120111

0000120108

0000120109

0000120107

0000120106

0000120109

0000120106

0000120105

0000120104

0000120106

0000120107

0000120105

0000120105

0000120108

0000120107

0000120105

0000120106

0000120107

0000120105

0000120102

0000120105

0000120101

0000120101

0000120102

0000120101

0000120102

0000120101

0000120100

0000120104

0000120102

0000120100

0000120103

0000120103

0000120103

0000120102

0000120103

0000120103

0000120102

0000120101

0000120102

0000120100

0000120099

0000120100

0000120102

0000120102

0000120104

0000120104

0000120103

0000120105

0000120104

0000120104

0000120107

0000120107

0000120109

0000120108

0000120110

0000120107

0000120110

0000120109

0000120110

0000120111

0000120106

0000120107

0000120107

0000120107

0000120107

0000120112

0000120110

0000120110

0000120111

0000120111

0000120111

0000120111

0000120112

0000120113

0000120113

0000120110

0000120110

0000120109

0000120109

0000120109

0000120111

0000120112

0000120112

0000120110

0000120109

0000120112

0000120111

0000120108

0000120112

0000120112

0000120114

0000120113

0000120111

0000120110

0000120111

0000120112

0000120112

0000120116

0000120117

0000120120

0000120116

0000120117

0000120116

0000120118

0000120118

0000120120

0000120119

0000120119

0000120122

0000120122

0000120125

0000120127

0000120130

0000120129

0000120126

0000120128

0000120128

0000120131

0000120127

0000120130

0000120128

0000120128

0000120131

0000120132

0000120132

0000120128

0000120129

0000120131

0000120130

0000120130

0000120130

0000120130

0000120131

0000120130

0000120131

0000120131

0000120131

0000120130

0000120131

0000120130

0000120131

0000120133

0000120134

0000120132

0000120134

0000120133

0000120134

0000120135

0000120133

0000120134

0000120137

0000120137

0000120136

0000120135

0000120135

0000120137

0000120138

0000120136

0000120137

0000120139

0000120138

0000120140

0000120140

0000120139

0000120138

0000120139

0000120140

0000120137

0000120139

0000120135

0000120137

0000120137

0000120136

0000120136

0000120133

0000120139

0000120136

0000120134

0000120135

0000120133

0000120131

0000120131

0000120130

0000120128

0000120130

0000120127

0000120132

0000120127

0000120126

0000120124

0000120124

0000120124

0000120119

0000120121

0000120119

0000120118

0000120118

0000120119

0000120120

0000120119

0000120123

0000120123

0000120126

0000120126

0000120124

0000120127

0000120129

0000120129

0000120127

0000120128

0000120132

0000120129

0000120130

0000120133

0000120130

0000120132

0000120132

0000120134

0000120131

0000120134

0000120135

0000120132

0000120135

0000120135

0000120135

0000120133

0000120136

0000120133

0000120135

0000120135

0000120132

0000120133

0000120134

0000120135

0000120136

0000120135

0000120135

0000120137

0000120138

0000120138

0000120139

0000120139

0000120140

0000120141

0000120140

0000120143

0000120141

0000120141

0000120142

0000120142

0000120143

0000120142

0000120141

0000120142

0000120140

0000120142

0000120143

0000120139

0000120138

0000120137

0000120141

0000120139

0000120141

0000120140

0000120141

0000120140

0000120141

0000120142

0000120142

0000120143

0000120142

0000120141

0000120143

0000120139

0000120139

0000120139

0000120140

0000120139

0000120139

0000120136

0000120139

0000120139

0000120136

0000120136

0000120139

0000120137

0000120137

0000120136

0000120137

0000120137

0000120135

0000120135

0000120133

0000120136

0000120134

0000120137

0000120138

0000120140

0000120141

0000120141

0000120140

0000120139

0000120142

0000120142

0000120143

0000120144

0000120143

0000120143

0000120146

0000120147

0000120147

0000120147

0000120151

0000120151

0000120153

0000120154

0000120154

0000120153

0000120154

0000120154

0000120156

0000120156

0000120155

0000120154

0000120155

0000120156

0000120158

0000120156

0000120160

0000120158

0000120159

0000120160

0000120160

0000120158

0000120156

0000120156

0000120155

0000120158

0000120156

0000120156

0000120157

0000120156

0000120154

0000120156

0000120154

0000120152

0000120153

0000120152

0000120154

0000120150

0000120154

0000120154

0000120154

0000120154

0000120157

0000120153

0000120154

0000120157

0000120156

0000120155

0000120156

0000120156

0000120155

0000120157

0000120156

0000120154

0000120155

0000120156

0000120157

0000120153

0000120154

0000120151

0000120151

0000120152

0000120152

0000120153

0000120151

0000120149

0000120154

0000120153

0000120153

0000120153

0000120156

0000120154

0000120152

0000120153

0000120153

0000120154

0000120155

0000120158

0000120160

0000120161

0000120160

0000120159

0000120160

0000120163

0000120163

0000120160

0000120162

0000120160

0000120160

0000120160

0000120160

0000120162

0000120159

0000120161

0000120158

0000120159

0000120159

0000120160

0000120161

0000120163

0000120163

0000120161

0000120165

0000120166

0000120161

0000120161

0000120163

0000120163

0000120164

0000120164

0000120165

0000120167

0000120166

0000120168

0000120165

0000120167

0000120164

0000120164

0000120163

0000120162

0000120162

0000120162

0000120162

0000120161

0000120161

0000120160

0000120160

0000120157

0000120158

0000120156

0000120154

0000120155

0000120153

0000120153

0000120151

0000120147

0000120149

0000120148

0000120151

0000120149

0000120149

0000120147

0000120149

0000120145

0000120148

0000120144

0000120147

0000120147

0000120148

0000120145

0000120146

0000120145

0000120143

0000120144

0000120147

0000120147

0000120150

0000120148

0000120148

0000120148

0000120148

0000120146

0000120149

0000120148

0000120145

0000120149

0000120150

0000120150

0000120150

0000120150

0000120151

0000120148

0000120150

0000120150

0000120152

0000120156

0000120156

0000120155

0000120155

0000120156

0000120155

0000120157

0000120157

0000120157

0000120156

0000120155

0000120158

0000120157

0000120155

0000120158

0000120158

0000120160

0000120160

0000120162

0000120160

0000120161

0000120161

0000120162

0000120162

0000120164

0000120164

0000120167

0000120168

0000120167

0000120173

0000120170

0000120170

0000120172

0000120169

0000120172

0000120172

0000120172

0000120175

0000120176

0000120178

0000120181

0000120177

0000120181

0000120179

0000120176

0000120182

0000120182

0000120184

0000120181

0000120182

0000120184

0000120183

0000120186

0000120185

0000120185

0000120187

0000120188

0000120187

0000120189

0000120190

0000120188

0000120190

0000120191

0000120190

0000120188

0000120192

0000120191

0000120195

0000120190

0000120190

0000120195

0000120195

0000120193

0000120194

0000120195

0000120198

0000120195

0000120195

0000120193

0000120196

0000120194

0000120194

0000120195

0000120193

0000120193

0000120194

0000120195

0000120193

0000120193

0000120191

0000120192

0000120192

0000120193

0000120189

0000120191

0000120190

0000120189

0000120190

0000120193

0000120193

0000120192

0000120193

0000120192

0000120195

0000120193

0000120193

0000120195

0000120197

0000120196

0000120199

0000120197

0000120195

0000120198

0000120197

0000120198

0000120199

0000120201

0000120199

0000120201

0000120207

0000120206

0000120205

0000120202

0000120201

0000120203

0000120203

0000120203

0000120205

0000120202

0000120202

0000120199

0000120200

0000120200

0000120201

0000120199

0000120197

0000120200

0000120199

0000120201

0000120199

0000120199

0000120202

0000120200

0000120201

0000120199

0000120199

0000120196

0000120197

0000120195

0000120194

0000120193

0000120191

0000120188

0000120188

0000120185

0000120188

0000120185

0000120185

0000120184

0000120185

0000120181

0000120182

0000120176

0000120175

0000120177

0000120175

0000120175

0000120173

0000120175

0000120174

0000120172

0000120174

0000120174

0000120175

0000120175

0000120178

0000120179

0000120175

0000120178

0000120181

0000120181

0000120183

0000120183

0000120182

0000120180

0000120183

0000120182

0000120180

0000120183

0000120181

0000120184

0000120182

0000120183

0000120181

0000120179

0000120182

0000120180

0000120180

0000120178

0000120177

0000120179

0000120178

0000120182

0000120184

0000120183

0000120184

0000120181

0000120182

0000120184

0000120185

0000120184

0000120183

0000120183

0000120181

0000120184

0000120184

0000120182

0000120181

0000120185

0000120184

0000120184

0000120189

0000120186

0000120189

0000120188

0000120185

0000120184

0000120184

0000120184

0000120181

0000120184

0000120186

0000120184

0000120187

0000120186

0000120184

0000120186

0000120187

0000120185

0000120186

0000120186

0000120183

0000120184

0000120183

0000120187

0000120182

0000120183

0000120186

0000120187

0000120185

0000120185

0000120187

0000120187

0000120186

0000120185

0000120186

0000120183

0000120183

0000120180

0000120178

0000120181

0000120180

0000120177

0000120180

0000120179

0000120177

0000120176

0000120178

0000120178

0000120179

0000120178

0000120181

0000120179

0000120181

0000120182

0000120183

0000120179

0000120180

0000120182

0000120182

0000120183

0000120183

0000120182

0000120181

0000120183

0000120183

0000120182

0000120183

0000120181

0000120180

0000120181

0000120182

0000120183

0000120182

0000120185

0000120183

0000120183

0000120186

0000120184

0000120183

0000120186

0000120182

0000120185

0000120183

0000120186

0000120183

0000120184

0000120184

0000120182

0000120182

0000120181

0000120184

0000120183

0000120185

0000120184

0000120185

0000120187

0000120187

0000120186

0000120187

0000120186

0000120189

0000120188

0000120190

0000120192

0000120192

0000120193

0000120195

0000120192

0000120193

0000120195

0000120194

0000120197

0000120197

0000120195

0000120197

0000120195

0000120198

0000120196

0000120195

0000120197

0000120195

0000120195

0000120198

0000120198

0000120195

0000120198

0000120197

0000120196

0000120195

0000120194

0000120192

0000120191

0000120188

0000120186

0000120187

0000120187

0000120189

0000120185

0000120186

0000120184

0000120185

0000120185

0000120183

0000120185

0000120184

0000120183

0000120182

0000120184

0000120181

0000120177

0000120178

0000120177

0000120176

0000120175

0000120172

0000120173

0000120172

0000120168

0000120167

0000120167

0000120166

0000120165

0000120164

0000120166

0000120168

0000120165

0000120168

0000120166

0000120165

0000120166

0000120166

0000120166

0000120167

0000120168

0000120169

0000120171

0000120171

0000120171

0000120174

0000120176

0000120176

0000120178

0000120177

0000120179

0000120178

0000120177

0000120181

0000120180

0000120179

0000120180

0000120181

0000120179

0000120178

0000120175

0000120177

0000120175

0000120175

0000120175

0000120176

0000120175

0000120176

0000120174

0000120177

0000120172

0000120173

0000120173

0000120173

0000120171

0000120173

0000120171

0000120171

0000120173

0000120172

0000120169

0000120171

0000120171

0000120171

0000120169

0000120166

0000120166

0000120165

0000120165

0000120164

0000120163

0000120164

0000120161

0000120162

0000120160

0000120158

0000120156

0000120157

0000120157

0000120153

0000120154

0000120154

0000120152

0000120151

0000120150

0000120151

0000120149

0000120148

0000120147

0000120150

0000120150

0000120153

0000120153

0000120150

0000120149

0000120154

0000120154

0000120154

0000120156

0000120155

0000120155

0000120157

0000120157

0000120160

0000120162

0000120161

0000120159

0000120156

0000120156

0000120157

0000120156

0000120157

0000120158

0000120159

0000120158

0000120160

0000120160

0000120159

0000120159

0000120155

0000120159

0000120157

0000120158

0000120157

0000120160

0000120160

0000120158

0000120159

0000120161

0000120158

0000120159

0000120156

0000120159

0000120160

0000120159

0000120160

0000120162

0000120161

0000120159

0000120158

0000120156

0000120159

0000120159

0000120157

0000120160

0000120159

0000120158

0000120158

0000120159

0000120159

0000120161

0000120161

0000120160

0000120158

0000120158

0000120159

0000120160

0000120157

0000120157

0000120159

0000120159

0000120161

0000120162

0000120163

0000120160

0000120163

0000120161

0000120161

0000120162

0000120162

0000120163

0000120164

0000120162

0000120162

0000120163

0000120163

0000120165

0000120162

0000120165

0000120164

0000120166

0000120160

0000120163

0000120164

0000120167

0000120164

0000120165

0000120166

0000120167

0000120166

0000120164

0000120167

0000120168

0000120166

0000120166

0000120167

0000120166

0000120168

0000120168

0000120168

0000120167

0000120167

0000120168

0000120166

0000120168

0000120165

0000120165

0000120167

0000120167

0000120166

0000120167

0000120168

0000120168

0000120166

0000120163

0000120164

0000120165

0000120164

0000120164

0000120166

0000120166

0000120164

0000120164

0000120163

0000120164

0000120164

0000120163

0000120164

0000120164

0000120164

0000120164

0000120163

0000120162

0000120161

0000120163

0000120162

0000120163

0000120165

0000120165

0000120165

0000120162

0000120162

0000120161

0000120162

0000120161

0000120160

0000120160

0000120160

0000120159

0000120158

0000120158

0000120159

0000120158

0000120156

0000120159

0000120158

0000120159

0000120157

0000120155

0000120152

0000120154

0000120154

0000120154

0000120155

0000120156

0000120154

0000120154

0000120155

0000120153

0000120155

0000120154

0000120154

0000120154

0000120155

0000120155

0000120158

0000120155

0000120154

0000120152

0000120155

0000120153

0000120154

0000120153

0000120150

0000120151

0000120154

0000120152

0000120153

0000120153

0000120152

0000120154

0000120152

0000120153

0000120153

0000120153

0000120154

0000120152

0000120154

0000120153

0000120152

0000120153

0000120152

0000120153

0000120151

0000120153

0000120152

0000120150

0000120149

0000120150

0000120152

0000120151

0000120149

0000120149

0000120146

0000120148

0000120146

0000120145

0000120146

0000120146

0000120144

0000120144

0000120147

0000120146

0000120148

0000120148

0000120148

0000120151

0000120148

0000120149

0000120151

0000120151

0000120151

0000120152

0000120153

0000120153

0000120151

0000120150

0000120150

0000120151

0000120152

0000120151

0000120150

0000120151

0000120148

0000120148

0000120149

0000120148

0000120144

0000120144

0000120148

0000120146

0000120145

0000120148

0000120147

0000120145

0000120147

0000120146

0000120147

0000120144

0000120143

0000120143

0000120143

0000120144

0000120145

0000120144

0000120147

0000120145

0000120145

0000120148

0000120145

0000120145

0000120143

0000120146

0000120145

0000120147

0000120150

0000120149

0000120148

0000120149

0000120149

0000120148

0000120149

0000120148

0000120152

0000120149

0000120152

0000120148

0000120148

0000120150

0000120149

0000120150

0000120152

0000120151

0000120151

0000120155

0000120156

0000120154

0000120153

0000120152

0000120153

0000120150

0000120153

0000120154

0000120154

0000120152

0000120152

0000120152

0000120153

0000120152

0000120152

0000120154

0000120153

0000120152

0000120154

0000120153

0000120151

0000120151

0000120153

0000120151

0000120151

0000120150

0000120146

0000120150

0000120150

0000120149

0000120146

0000120148

0000120149

0000120148

0000120148

0000120145

0000120146

0000120146

0000120148

0000120150

0000120147

0000120146

0000120147

0000120146

0000120145

0000120144

0000120147

0000120146

0000120147

0000120148

0000120147

0000120146

0000120146

0000120146

0000120147

0000120144

0000120145

0000120143

0000120145

0000120146

0000120144

0000120144

0000120147

0000120143

0000120144

0000120143

0000120145

0000120142

0000120140

0000120142

0000120143

0000120140

0000120141

0000120142

0000120141

0000120141

0000120141

0000120144

0000120142

0000120141

0000120144

0000120146

0000120144

0000120144

0000120143

0000120143

0000120142

0000120143

0000120145

0000120145

0000120144

0000120143

0000120144

0000120145

0000120145

0000120144

0000120144

0000120146

0000120145

0000120144

0000120144

0000120144

0000120144

0000120144

0000120144

0000120145

0000120142

0000120145

0000120142

0000120144

0000120143

0000120143

0000120143

0000120143

0000120143

0000120145

0000120145

0000120143

0000120144

0000120143

0000120140

0000120142

0000120141

0000120141

0000120140

0000120141

0000120141

0000120141

0000120140

0000120143

0000120141

0000120140

0000120142

0000120139

0000120142

0000120138

0000120140

0000120137

0000120137

0000120138

0000120139

0000120139

0000120139

0000120140

0000120139

0000120140

0000120140

0000120140

0000120140

0000120139

0000120140

0000120141

0000120139

0000120142

0000120140

0000120141

0000120136

0000120137

0000120140

0000120139

0000120138

0000120141

0000120141

0000120143

0000120142

0000120140

0000120142

0000120142

0000120142

0000120141

0000120142

0000120142

0000120142

0000120141

0000120138

0000120140

0000120142

0000120140

0000120139

0000120142

0000120140

0000120139

0000120141

0000120140

0000120141

0000120141

0000120142

0000120141

0000120138

0000120140

0000120139

0000120140

0000120138

0000120141

0000120137

0000120140

0000120137

0000120137

0000120138

0000120139

0000120139

0000120139

0000120140

0000120140

0000120141

0000120142

0000120139

0000120139

0000120138

0000120135

0000120135

0000120137

0000120137

0000120138

0000120139

0000120138

0000120137

0000120137

0000120137

0000120137

0000120135

0000120135

0000120137

0000120134

0000120134

0000120136

0000120137

0000120133

0000120134

0000120134

0000120133

0000120133

0000120132

0000120133

0000120132

0000120132

0000120133

0000120133

0000120134

0000120132

0000120133

0000120133

0000120136

0000120135

0000120135

0000120138

0000120136

0000120136

0000120136

0000120136

0000120137

0000120135

0000120134

0000120136

0000120136

0000120136

0000120139

0000120139

0000120140

0000120137

0000120139

0000120140

0000120138

0000120137

0000120138

0000120139

0000120135

0000120136

0000120136

0000120138

0000120137

0000120135

0000120137

0000120138

0000120135

0000120139

0000120138

0000120136

0000120136

0000120139

0000120138

0000120138

0000120135

0000120135

0000120137

0000120134

0000120134

0000120135

0000120135

0000120135

0000120135

0000120132

0000120134

0000120134

0000120135

0000120136

0000120133

0000120133

0000120134

0000120132

0000120131

0000120131

0000120132

0000120133

0000120132

0000120134

0000120134

0000120134

0000120132

0000120134

0000120134

0000120133

0000120134

0000120134

0000120136

0000120135

0000120134

0000120132

0000120133

0000120132

0000120132

0000120131

0000120131

0000120133

0000120133

0000120132

0000120135

0000120131

0000120128

0000120129

0000120131

0000120130

0000120129

0000120130

0000120130

0000120131

0000120128

0000120129

0000120128

0000120125

0000120129

0000120127

0000120128

0000120127

0000120130

0000120129

0000120128

0000120133

0000120132

0000120130

0000120130

0000120128

0000120129

0000120128

0000120129

0000120128

0000120127

0000120127

0000120128

0000120126

0000120127

0000120129

0000120125

0000120126

0000120127

0000120124

0000120124

0000120125

0000120126

0000120129

0000120127

0000120128

0000120129

0000120127

0000120126

0000120128

0000120129

0000120128

0000120125

0000120128

0000120129

0000120129

0000120127

0000120128

0000120130

0000120128

0000120128

0000120127

0000120130

0000120127

0000120126

0000120126

0000120128

0000120126

0000120125

0000120127

0000120128

0000120126

0000120127

0000120129

0000120129

0000120128

0000120129

0000120128

0000120130

0000120128

0000120130

0000120132

0000120128

0000120130

0000120130

0000120131

0000120130

0000120131

0000120132

0000120131

0000120131

0000120132

0000120128

0000120127

0000120129

0000120129

0000120127

0000120131

0000120131

0000120132

0000120129

0000120129

0000120129

0000120127

0000120129

0000120130

0000120130

0000120128

0000120129

0000120128

0000120127

0000120130

0000120128

0000120131

0000120130

0000120129

0000120129

0000120127

0000120127

0000120128

0000120129

0000120127

0000120125

0000120125

0000120128

0000120126

0000120124

0000120127

0000120123

0000120125

0000120125

0000120125

0000120125

0000120124

0000120127

0000120126

0000120124

0000120125

0000120128

0000120127

0000120126

0000120125

0000120128

0000120127

0000120127

0000120126

0000120125

0000120126

0000120128

0000120129

0000120127

0000120127

0000120126

0000120127

0000120127

0000120125

0000120125

0000120126

0000120126

0000120125

0000120124

0000120125

0000120123

0000120123

0000120123

0000120124

0000120122

0000120121

0000120122

0000120125

0000120124

0000120124

0000120123

0000120126

0000120122

0000120123

0000120120

0000120124

0000120122

0000120123

0000120121

0000120120

0000120120

0000120118

0000120122

0000120123

0000120120

0000120119

0000120119

0000120119

0000120119

0000120118

0000120121

0000120121

0000120120

0000120121

0000120121

0000120122

0000120121

0000120121

0000120122

0000120121

0000120120

0000120122

0000120122

0000120121

0000120123

0000120122

0000120121

0000120121

0000120123

0000120122

0000120121

0000120124

0000120124

0000120122

0000120122

0000120121

0000120122

0000120123

0000120121

0000120123

0000120120

0000120123

0000120122

0000120122

0000120124

0000120123

0000120121

0000120122

0000120123

0000120124

0000120124

0000120123

0000120123

0000120124

0000120124

0000120124

0000120122

0000120124

0000120122

0000120120

0000120121

0000120121

0000120120

0000120122

0000120124

0000120121

0000120123

0000120124

0000120122

0000120120

0000120123

0000120122

0000120122

0000120122

0000120123

0000120126

0000120125

0000120124

0000120121

0000120121

0000120123

0000120122

0000120124

0000120124

0000120123

0000120124

0000120124

0000120125

0000120128

0000120124

0000120125

0000120124

0000120124

0000120124

0000120122

0000120124

0000120122

0000120123

0000120126

0000120124

0000120123

0000120123

0000120123

0000120121

0000120121

0000120121

0000120124

0000120121

0000120120

0000120120

0000120119

0000120119

0000120119

0000120121

0000120122

0000120118

0000120118

0000120119

0000120117

0000120117

0000120117

0000120115

0000120116

0000120116

0000120116

0000120116

0000120116

0000120113

0000120114

0000120117

0000120117

0000120115

0000120116

0000120117

0000120118

0000120114

0000120116

0000120118

0000120117

0000120118

0000120116

0000120116

0000120115

0000120114

0000120119

0000120112

0000120113

0000120116

0000120113

0000120114

0000120113

0000120111

0000120110

0000120111

0000120112

0000120112

0000120110

0000120112

0000120109

0000120110

0000120110

0000120109

0000120112

0000120111

0000120110

0000120110

0000120110

0000120110

0000120109

0000120109

0000120111

0000120107

0000120110

0000120108

0000120109

0000120109

0000120111

0000120110

0000120109

0000120113

0000120110

0000120109

0000120109

0000120111

0000120113

0000120110

0000120113

0000120112

0000120115

0000120111

0000120111

0000120112

0000120113

0000120114

0000120114

0000120113

0000120113

0000120114

0000120113

0000120113

0000120114

0000120115

0000120110

0000120114

0000120113

0000120109

0000120112

0000120111

0000120111

0000120110

0000120112

0000120109

0000120110

0000120112

0000120109

0000120111

0000120110

0000120110

0000120110

0000120112

0000120111

0000120113

0000120111

0000120112

0000120113

0000120113

0000120110

0000120109

0000120114

0000120112

0000120112

0000120111

0000120113

0000120113

0000120114

0000120115

0000120117

0000120116

0000120115

0000120113

0000120118

0000120115

0000120114

0000120116

0000120117

0000120117

0000120115

0000120117

0000120120

0000120118

0000120117

0000120119

0000120119

0000120121

0000120120

0000120121

0000120119

0000120120

0000120121

0000120121

0000120122

0000120122

0000120120

0000120120

0000120121

0000120119

0000120121

0000120120

0000120119

0000120118

0000120115

0000120117

0000120118

0000120117

0000120118

0000120115

0000120116

0000120116

0000120117

0000120117

0000120118

0000120118

0000120118

0000120116

0000120117

0000120121

0000120118

0000120121

0000120119

0000120117

0000120122

0000120119

0000120122

0000120121

0000120122

0000120122

0000120120

0000120122

0000120118

0000120117

0000120116

0000120119

0000120117

0000120117

0000120116

0000120116

0000120115

0000120114

0000120113

0000120116

0000120115

0000120114

0000120113

0000120114

0000120114

0000120113

0000120115

0000120117

0000120115

0000120117

0000120119

0000120118

0000120123

0000120122

0000120124

0000120127

0000120123

0000120125

0000120126

0000120124

0000120127

0000120125

0000120126

0000120125

0000120127

0000120126

0000120126

0000120127

0000120126

0000120129

0000120128

0000120129

0000120126

0000120126

0000120128

0000120132

0000120130

0000120131

0000120130

0000120131

0000120134

0000120131

0000120131

0000120132

0000120133

0000120132

0000120131

0000120131

0000120134

0000120133

0000120133

0000120131

0000120134

0000120133

0000120133

0000120135

0000120137

0000120136

0000120134

0000120135

0000120135

0000120137

0000120137

0000120134

0000120136

0000120137

0000120138

0000120136

0000120140

0000120140

0000120137

0000120137

0000120139

0000120139

0000120139

0000120137

0000120135

0000120137

0000120136

0000120136

0000120138

0000120140

0000120140

0000120140

0000120139

0000120141

0000120140

0000120143

0000120144

0000120144

0000120142

0000120142

0000120141

0000120142

0000120142

0000120142

0000120141

0000120141

0000120142

0000120143

0000120143

0000120144

0000120142

0000120142

0000120141

0000120140

0000120144

0000120144

0000120143

0000120141

0000120141

0000120142

0000120142

0000120142

0000120144

0000120143

0000120144

0000120141

0000120145

0000120143

0000120142

0000120141

0000120141

0000120139

0000120141

0000120137

0000120139

0000120136

0000120136

0000120136

0000120138

0000120137

0000120137

0000120135

0000120134

0000120134

0000120134

0000120135

0000120134

0000120134

0000120133

0000120133

0000120133

0000120134

0000120134

0000120131

0000120135

0000120133

0000120132

0000120134

0000120132

0000120132

0000120133

0000120134

0000120130

0000120131

0000120132

0000120131

0000120131

0000120129

0000120131

0000120130

0000120130

0000120132

0000120131

0000120134

0000120134

0000120135

0000120132

0000120131

0000120132

0000120134

0000120130

0000120131

0000120130

0000120132

0000120132

0000120136

0000120136

0000120141

0000120140

0000120141

0000120142

0000120144

0000120142

0000120143

0000120143

0000120144

0000120145

0000120144

0000120145

0000120146

0000120144

0000120148

0000120146

0000120146

0000120147

0000120148

0000120149

0000120147

0000120150

0000120150

0000120152

0000120151

0000120151

0000120153

0000120152

0000120151

0000120154

0000120153

0000120150

0000120152

0000120154

0000120155

0000120154

0000120153

0000120155

0000120155

0000120159

0000120154

0000120156

0000120156

0000120154

0000120150

0000120151

0000120149

0000120152

0000120151

0000120151

0000120153

0000120155

0000120157

0000120155

0000120155

0000120159

0000120157

0000120160

0000120157

0000120158

0000120154

0000120156

0000120158

0000120156

0000120156

0000120157

0000120156

0000120160

0000120157

0000120158

0000120159

0000120159

0000120159

0000120160

0000120161

0000120158

0000120161

0000120161

0000120162

0000120163

0000120163

0000120163

0000120161

0000120161

0000120161

0000120160

0000120159

0000120160

0000120162

0000120162

0000120160

0000120160

0000120161

0000120160

0000120160

0000120161

0000120163

0000120163

0000120165

0000120164

0000120164

0000120166

0000120163

0000120160

0000120164

0000120164

0000120161

0000120158

0000120157

0000120159

0000120157

0000120158

0000120156

0000120157

0000120155

0000120155

0000120154

0000120154

0000120150

0000120150

0000120152

0000120149

0000120148

0000120147

0000120146

0000120146

0000120147

0000120145

0000120149

0000120148

0000120149

0000120149

0000120150

0000120151

0000120152

0000120155

0000120156

0000120156

0000120155

0000120158

0000120160

0000120160

0000120165

0000120162

0000120165

0000120164

0000120163

0000120162

0000120166

0000120164

0000120166

0000120166

0000120168

0000120170

0000120167

0000120167

0000120169

0000120169

0000120166

0000120169

0000120167

0000120167

0000120166

0000120165

0000120165

0000120164

0000120164

0000120163

0000120163

0000120162

0000120165

0000120166

0000120167

0000120168

0000120166

0000120168

0000120168

0000120168

0000120170

0000120168

0000120168

0000120170

0000120167

0000120167

0000120166

0000120166

0000120166

0000120166

0000120164

0000120163

0000120163

0000120160

0000120162

0000120163

0000120163

0000120163

0000120159

0000120160

0000120160

0000120158

0000120159

0000120155

0000120156

0000120158

0000120156

0000120157

0000120152

0000120153

0000120154

0000120154

0000120152

0000120150

0000120150

0000120152

0000120153

0000120153

0000120153

0000120153

0000120152

0000120154

0000120151

0000120154

0000120155

0000120154

0000120154

0000120155

0000120155

0000120156

0000120156

0000120158

0000120156

0000120158

0000120158

0000120156

0000120159

0000120160

0000120157

0000120158

0000120158

0000120157

0000120157

0000120158

0000120156

0000120158

0000120155

0000120159

0000120156

0000120158

0000120154

0000120154

0000120156

0000120152

0000120152

0000120152

0000120150

0000120151

0000120152

0000120152

0000120153

0000120154

0000120154

0000120152

0000120153

0000120153

0000120152

0000120153

0000120151

0000120153

0000120154

0000120154

0000120157

0000120158

0000120160

0000120166

0000120167

0000120166

0000120167

0000120167

0000120170

0000120168

0000120169

0000120175

0000120173

0000120175

0000120174

0000120176

0000120172

0000120176

0000120178

0000120177

0000120176

0000120176

0000120173

0000120176

0000120175

0000120174

0000120173

0000120175

0000120175

0000120176

0000120175

0000120178

0000120177

0000120175

0000120176

0000120177

0000120179

0000120174

0000120179

0000120179

0000120180

0000120179

0000120180

0000120179

0000120181

0000120183

0000120180

0000120183

0000120182

0000120181

0000120180

0000120181

0000120181

0000120183

0000120185

0000120185

0000120183

0000120186

0000120190

0000120188

0000120190

0000120192

0000120191

0000120190

0000120191

0000120193

0000120193

0000120194

0000120197

0000120195

0000120196

0000120198

0000120200

0000120198

0000120201

0000120199

0000120198

0000120196

0000120195

0000120196

0000120195

0000120195

0000120197

0000120195

0000120195

0000120193

0000120193

0000120193

0000120190

0000120189

0000120190

0000120192

0000120189

0000120190

0000120191

0000120188

0000120188

0000120187

0000120190

0000120188

0000120186

0000120186

0000120186

0000120186

0000120186

0000120187

0000120187

0000120187

0000120186

0000120188

0000120189

0000120191

0000120189

0000120187

0000120190

0000120190

0000120189

0000120188

0000120189

0000120187

0000120187

0000120187

0000120185

0000120185

0000120183

0000120184

0000120185

0000120182

0000120182

0000120182

0000120178

0000120177

0000120178

0000120174

0000120175

0000120176

0000120174

0000120174

0000120173

0000120173

0000120173

0000120172

0000120173

0000120173

0000120173

0000120173

0000120176

0000120177

0000120174

0000120178

0000120179

0000120179

0000120178

0000120181

0000120180

0000120180

0000120181

0000120183

0000120184

0000120183

0000120184

0000120187

0000120187

0000120188

0000120190

0000120188

0000120191

0000120193

0000120190

0000120190

0000120192

0000120193

0000120194

0000120192

0000120196

0000120194

0000120195

0000120194

0000120197

0000120196

0000120198

0000120195

0000120199

0000120198

0000120197

0000120195

0000120198

0000120199

0000120199

0000120200

0000120202

0000120201

0000120201

0000120199

0000120202

0000120200

0000120202

0000120204

0000120204

0000120201

0000120201

0000120203

0000120202

0000120202

0000120200

0000120202

0000120201

0000120200

0000120199

0000120199

0000120201

0000120198

0000120198

0000120202

0000120200

0000120203

0000120199

0000120198

0000120198

0000120198

0000120195

0000120195

0000120195

0000120196

0000120192

0000120195

0000120193

0000120195

0000120191

0000120191

0000120191

0000120188

0000120189

0000120186

0000120189

0000120184

0000120184

0000120183

0000120182

0000120182

0000120180

0000120181

0000120181

0000120178

0000120177

0000120177

0000120176

0000120176

0000120174

0000120174

0000120173

0000120173

0000120172

0000120172

0000120174

0000120172

0000120172

0000120174

0000120170

0000120171

0000120169

0000120171

0000120172

0000120172

0000120169

0000120170

0000120169

0000120167

0000120166

0000120165

0000120168

0000120170

0000120170

0000120170

0000120168

0000120171

0000120167

0000120166

0000120164

0000120167

0000120167

0000120166

0000120166

0000120166

0000120168

0000120165

0000120168

0000120166

0000120167

0000120165

0000120169

0000120170

0000120169

0000120169

0000120169

0000120167

0000120167

0000120165

0000120165

0000120168

0000120165

0000120164

0000120167

0000120168

0000120163

0000120163

0000120162

0000120160

0000120157

0000120159

0000120158

0000120158

0000120156

0000120155

0000120157

0000120157

0000120155

0000120154

0000120156

0000120156

0000120153

0000120153

0000120157

0000120156

0000120156

0000120157

0000120158

0000120161

0000120162

0000120164

0000120167

0000120164

0000120163

0000120163

0000120164

0000120167

0000120165

0000120166

0000120171

0000120170

0000120173

0000120175

0000120176

0000120175

0000120174

0000120179

0000120179

0000120177

0000120177

0000120176

0000120179

0000120179

0000120178

0000120180

0000120182

0000120185

0000120185

0000120187

0000120187

0000120189

0000120187

0000120191

0000120189

0000120186

0000120191

0000120188

0000120190

0000120192

0000120193

0000120192

0000120192

0000120193

0000120194

0000120193

0000120192

0000120191

0000120192

0000120193

0000120194

0000120191

0000120195

0000120192

0000120194

0000120192

0000120193

0000120194

0000120193

0000120192

0000120192

0000120194

0000120194

0000120193

0000120194

0000120197

0000120198

0000120201

0000120202

0000120200

0000120200

0000120199

0000120198

0000120198

0000120198

0000120196

0000120198

0000120202

0000120202

0000120204

0000120203

0000120202

0000120203

0000120201

0000120202

0000120201

0000120203

0000120205

0000120204

0000120203

0000120203

0000120204

0000120203

0000120202

0000120200

0000120199

0000120202

0000120201

0000120202

0000120200

0000120202

0000120201

0000120207

0000120206

0000120206

0000120206

0000120206

0000120204

0000120205

0000120204

0000120204

0000120202

0000120205

0000120203

0000120198

0000120200

0000120196

0000120195

0000120194

0000120193

0000120190

0000120188

0000120188

0000120188

0000120188

0000120188

0000120187

0000120187

0000120186

0000120187

0000120186

0000120185

0000120185

0000120185

0000120187

0000120185

0000120188

0000120191

0000120192

0000120193

0000120195

0000120196

0000120197

0000120196

0000120199

0000120197

0000120199

0000120198

0000120197

0000120199

0000120198

0000120199

0000120202

0000120201

0000120199

0000120201

0000120198

0000120196

0000120197

0000120195

0000120194

0000120194

0000120190

0000120194

0000120194

0000120192

0000120193

0000120192

0000120191

0000120192

0000120193

0000120190

0000120188

0000120188

0000120189

0000120190

0000120189

0000120191

0000120193

0000120192

0000120193

0000120194

0000120191

0000120192

0000120195

0000120195

0000120198

0000120197

0000120194

0000120195

0000120197

0000120197

0000120198

0000120196

0000120198

0000120196

0000120195

0000120197

0000120197

0000120195

0000120196

0000120194

0000120197

0000120196

0000120196

0000120199

0000120201

0000120201

0000120204

0000120207

0000120206

0000120206

0000120205

0000120208

0000120206

0000120204

0000120207

0000120210

0000120208

0000120207

0000120208

0000120207

0000120208

0000120206

0000120204

0000120204

0000120204

0000120203

0000120204

0000120206

0000120202

0000120202

0000120203

0000120208

0000120207

0000120204

0000120204

0000120206

0000120207

0000120204

0000120204

0000120205

0000120205

0000120204

0000120204

0000120207

0000120204

0000120203

0000120205

0000120204

0000120204

0000120204

0000120202

0000120200

0000120199

0000120200

0000120201

0000120200

0000120200

0000120198

0000120196

0000120197

0000120194

0000120197

0000120195

0000120196

0000120193

0000120194

0000120193

0000120194

0000120190

0000120191

0000120189

0000120187

0000120188

0000120186

0000120187

0000120183

0000120184

0000120183

0000120181

0000120181

0000120180

0000120182

0000120180

0000120180

0000120181

0000120183

0000120181

0000120183

0000120181

0000120179

0000120180

0000120179

0000120176

0000120177

0000120179

0000120177

0000120178

0000120179

0000120181

0000120181

0000120182

0000120182

0000120184

0000120183

0000120181

0000120185

0000120184

0000120188

0000120185

0000120184

0000120187

0000120187

0000120190

0000120189

0000120190

0000120188

0000120188

0000120186

0000120187

0000120189

0000120189

0000120187

0000120187

0000120185

0000120185

0000120186

0000120185

0000120187

0000120185

0000120184

0000120184

0000120183

0000120185

0000120185

0000120187

0000120186

0000120185

0000120185

0000120185

0000120186

0000120185

0000120184

0000120185

0000120185

0000120185

0000120184

0000120184

0000120182

0000120182

0000120183

0000120183

0000120183

0000120185

0000120183

0000120184

0000120184

0000120184

0000120185

0000120186

0000120187

0000120185

0000120183

0000120184

0000120185

0000120184

0000120181

0000120182

0000120184

0000120183

0000120182

0000120180

0000120182

0000120182

0000120183

0000120178

0000120182

0000120180

0000120179

0000120179

0000120178

0000120183

0000120183

0000120181

0000120182

0000120182

0000120184

0000120184

0000120181

0000120183

0000120182

0000120184

0000120183

0000120181

0000120183

0000120184

0000120183

0000120184

0000120184

0000120183

0000120185

0000120183

0000120180

0000120181

0000120181

0000120178

0000120180

0000120180

0000120179

0000120181

0000120179

0000120179

0000120180

0000120179

0000120179

0000120180

0000120182

0000120178

0000120180

0000120179

0000120177

0000120180

0000120179

0000120179

0000120176

0000120175

0000120173

0000120176

0000120174

0000120174

0000120177

0000120177

0000120178

0000120176

0000120180

0000120177

0000120179

0000120177

0000120176

0000120177

0000120174

0000120176

0000120175

0000120176

0000120174

0000120175

0000120178

0000120177

0000120179

0000120174

0000120178

0000120177

0000120178

0000120178

0000120176

0000120177

0000120176

0000120174

0000120177

0000120178

0000120174

0000120174

0000120176

0000120177

0000120176

0000120177

0000120176

0000120175

0000120176

0000120174

0000120177

0000120172

0000120175

0000120175

0000120174

0000120175

0000120173

0000120174

0000120172

0000120172

0000120174

0000120176

0000120176

0000120177

0000120176

0000120179

0000120176

0000120177

0000120175

0000120177

0000120175

0000120177

0000120180

0000120178

0000120179

0000120181

0000120179

0000120180

0000120182

0000120180

0000120177

0000120179

0000120178

0000120180

0000120181

0000120180

0000120180

0000120180

0000120179

0000120181

0000120181

0000120180

0000120181

0000120179

0000120177

0000120175

0000120176

0000120174

0000120175

0000120174

0000120174

0000120178

0000120176

0000120176

0000120176

0000120177

0000120176

0000120174

0000120175

0000120177

0000120177

0000120175

0000120175

0000120176

0000120174

0000120176

0000120175

0000120174

0000120175

0000120175

0000120172

0000120171

0000120171

0000120175

0000120175

0000120174

0000120173

0000120173

0000120175

0000120173

0000120174

0000120175

0000120172

0000120173

0000120171

0000120169

0000120172

0000120172

0000120172

0000120172

0000120172

0000120171

0000120172

0000120173

0000120171

0000120173

0000120172

0000120172

0000120173

0000120171

0000120170

0000120168

0000120169

0000120167

0000120170

0000120169

0000120168

0000120170

0000120171

0000120170

0000120168

0000120169

0000120172

0000120170

0000120168

0000120167

0000120165

0000120169

0000120167

0000120168

0000120165

0000120164

0000120166

0000120165

0000120165

0000120167

0000120164

0000120165

0000120165

0000120163

0000120163

0000120161

0000120163

0000120163

0000120162

0000120162

0000120163

0000120162

0000120160

0000120163

0000120164

0000120162

0000120163

0000120161

0000120162

0000120159

0000120158

0000120158

0000120161

0000120158

0000120159

0000120160

0000120160

0000120161

0000120161

0000120160

0000120160

0000120159

0000120161

0000120159

0000120159

0000120161

0000120159

0000120161

0000120160

0000120161

0000120159

0000120159

0000120160

0000120159

0000120160

0000120162

0000120161

0000120161

0000120164

0000120162

0000120162

0000120160

0000120162

0000120162

0000120164

0000120161

0000120164

0000120165

0000120164

0000120165

0000120165

0000120166

0000120167

0000120165

0000120165

0000120165

0000120167

0000120167

0000120169

0000120166

0000120170

0000120169

0000120171

0000120172

0000120174

0000120171

0000120171

0000120172

0000120173

0000120173

0000120170

0000120171

0000120172

0000120171

0000120171

0000120172

0000120173

0000120172

0000120174

0000120172

0000120173

0000120173

0000120171

0000120174

0000120172

0000120173

0000120172

0000120172

0000120174

0000120175

0000120176

0000120177

0000120177

0000120174

0000120175

0000120175

0000120176

0000120174

0000120177

0000120176

0000120175

0000120174

0000120176

0000120176

0000120176

0000120175

0000120175

0000120172

0000120174

0000120177

0000120176

0000120174

0000120176

0000120174

0000120177

0000120177

0000120176

0000120175

0000120178

0000120177

0000120175

0000120177

0000120175

0000120176

0000120174

0000120175

0000120173

0000120173

0000120172

0000120174

0000120175

0000120175

0000120174

0000120175

0000120176

0000120173

0000120175

0000120177

0000120175

0000120173

0000120174

0000120173

0000120171

0000120174

0000120173

0000120176

0000120175

0000120174

0000120173

0000120174

0000120173

0000120171

0000120172

0000120175

0000120170

0000120173

0000120170

0000120168

0000120169

0000120167

0000120167

0000120165

0000120166

0000120165

0000120164

0000120165

0000120163

0000120163

0000120162

0000120163

0000120161

0000120164

0000120160

0000120159

0000120161

0000120161

0000120160

0000120158

0000120157

0000120157

0000120160

0000120160

0000120158

0000120160

0000120160

0000120158

0000120161

0000120158

0000120158

0000120158

0000120160

0000120160

0000120159

0000120159

0000120162

0000120163

0000120160

0000120160

0000120162

0000120162

0000120161

0000120162

0000120163

0000120160

0000120162

0000120160

0000120160

0000120160

0000120162

0000120162

0000120162

0000120163

0000120163

0000120163

0000120163

0000120164

0000120163

0000120164

0000120162

0000120165

0000120165

0000120163

0000120162

0000120162

0000120163

0000120163

0000120163

0000120164

0000120161

0000120163

0000120161

0000120161

0000120161

0000120162

0000120162

0000120159

0000120160

0000120160

0000120159

0000120161

0000120160

0000120158

0000120160

0000120159

0000120158

0000120158

0000120157

0000120158

0000120156

0000120158

0000120159

0000120158

0000120156

0000120158

0000120158

0000120159

0000120158

0000120159

0000120159

0000120159

0000120158

0000120160

0000120158

0000120160

0000120155

0000120158

0000120159

0000120159

0000120158

0000120159

0000120160

0000120157

0000120161

0000120159

0000120160

0000120158

0000120160

0000120159

0000120159

0000120158

0000120158

0000120157

0000120162

0000120160

0000120160

0000120159

0000120157

0000120156

0000120156

0000120157

0000120155

0000120154

0000120154

0000120155

0000120154

0000120156

0000120154

0000120155

0000120156

0000120157

0000120157

0000120156

0000120158

0000120155

0000120157

0000120155

0000120155

0000120154

0000120155

0000120154

0000120154

0000120154

0000120153

0000120155

0000120154

0000120158

0000120158

0000120155

0000120155

0000120157

0000120156

0000120155

0000120156

0000120156

0000120156

0000120155

0000120156

0000120157

0000120156

0000120156

0000120155

0000120157

0000120153

0000120154

0000120157

0000120155

0000120154

0000120155

0000120154

0000120154

0000120153

0000120153

0000120152

0000120154

0000120152

0000120155

0000120153

0000120152

0000120154

0000120152

0000120154

0000120153

0000120151

0000120152

0000120152

0000120152

0000120152

0000120152

0000120154

0000120154

0000120155

0000120153

0000120155

0000120154

0000120154

0000120153

0000120152

0000120151

0000120153

0000120152

0000120154

0000120152

0000120151

0000120151

0000120149

0000120148

0000120146

0000120151

0000120151

0000120149

0000120148

0000120148

0000120145

0000120148

0000120144

0000120148

0000120147

0000120146

0000120145

0000120147

0000120146

0000120148

0000120147

0000120149

0000120146

0000120143

0000120143

0000120143

0000120143

0000120143

0000120142

0000120143

0000120143

0000120142

0000120140

0000120142

0000120141

0000120140

0000120142

0000120141

0000120143

0000120141

0000120140

0000120142

0000120145

0000120143

0000120143

0000120146

0000120145

0000120144

0000120145

0000120147

0000120146

0000120144

0000120146

0000120146

0000120144

0000120144

0000120149

0000120145

0000120145

0000120145

0000120146

0000120147

0000120144

0000120146

0000120147

0000120147

0000120149

0000120145

0000120145

0000120148

0000120145

0000120146

0000120148

0000120147

0000120148

0000120149

0000120148

0000120148

0000120149

0000120146

0000120148

0000120144

0000120142

0000120147

0000120146

0000120146

0000120144

0000120146

0000120148

0000120146

0000120145

0000120143

0000120143

0000120144

0000120145

0000120146

0000120148

0000120146

0000120145

0000120146

0000120145

0000120145

0000120144

0000120146

0000120147

0000120145

0000120146

0000120144

0000120146

0000120144

0000120143

0000120145

0000120147

0000120143

0000120145

0000120143

0000120145

0000120141

0000120141

0000120142

0000120144

0000120141

0000120142

0000120139

0000120141

0000120138

0000120138

0000120140

0000120142

0000120141

0000120141

0000120140

0000120140

0000120139

0000120139

0000120139

0000120140

0000120137

0000120142

0000120138

0000120140

0000120143

0000120139

0000120140

0000120139

0000120140

0000120138

0000120138

0000120138

0000120139

0000120139

0000120139

0000120138

0000120138

0000120141

0000120140

0000120141

0000120137

0000120139

0000120141

0000120141

0000120141

0000120142

0000120144

0000120143

0000120143

0000120142

0000120139

0000120140

0000120140

0000120142

0000120142

0000120140

0000120142

0000120142

0000120143

0000120141

0000120143

0000120141

0000120145

0000120142

0000120142

0000120145

0000120144

0000120145

0000120144

0000120143

0000120145

0000120144

0000120143

0000120142

0000120141

0000120144

0000120143

0000120141

0000120141

0000120142

0000120138

0000120143

0000120145

0000120143

0000120141

0000120142

0000120143

0000120142

0000120145

0000120142

0000120144

0000120143

0000120147

0000120145

0000120142

0000120142

0000120147

0000120144

0000120146

0000120143

0000120145

0000120142

0000120143

0000120141

0000120141

0000120144

0000120143

0000120144

0000120142

0000120140

0000120140

0000120142

0000120142

0000120140

0000120144

0000120141

0000120141

0000120141

0000120141

0000120142

0000120141

0000120141

0000120139

0000120143

0000120140

0000120139

0000120141

0000120140

0000120140

0000120141

0000120141

0000120142

0000120139

0000120138

0000120141

0000120143

0000120140

0000120137

0000120141

0000120137

0000120137

0000120137

0000120137

0000120139

0000120139

0000120137

0000120140

0000120141

0000120137

0000120140

0000120140

0000120139

0000120138

0000120139

0000120139

0000120137

0000120136

0000120136

0000120139

0000120139

0000120137

0000120141

0000120139

0000120137

0000120138

0000120138

0000120139

0000120140

0000120138

0000120141

0000120140

0000120143

0000120142

0000120140

0000120141

0000120143

0000120143

0000120141

0000120141

0000120144

0000120143

0000120142

0000120145

0000120144

0000120145

0000120146

0000120143

0000120147

0000120142

0000120144

0000120145

0000120146

0000120146

0000120146

0000120145

0000120144

0000120144

0000120143

0000120142

0000120144

0000120143

0000120146

0000120144

0000120143

0000120141

0000120143

0000120144

0000120144

0000120140

0000120143

0000120143

0000120143

0000120141

0000120141

0000120142

0000120141

0000120141

0000120141

0000120141

0000120139

0000120139

0000120141

0000120141

0000120139

0000120140

0000120141

0000120141

0000120141

0000120138

0000120137

0000120138

0000120139

0000120136

0000120138

0000120140

0000120138

0000120138

0000120135

0000120134

0000120133

0000120136

0000120134

0000120137

0000120138

0000120136

0000120134

0000120137

0000120136

0000120137

0000120137

0000120137

0000120137

0000120136

0000120141

0000120138

0000120140

0000120139

0000120137

0000120138

0000120138

0000120140

0000120139

0000120138

0000120137

0000120135

0000120137

0000120136

0000120134

0000120135

0000120138

0000120134

0000120136

0000120139

0000120137

0000120138

0000120135

0000120136

0000120135

0000120135

0000120133

0000120135

0000120137

0000120137

0000120136

0000120137

0000120137

0000120139

0000120138

0000120137

0000120139

0000120140

0000120139

0000120139

0000120141

0000120139

0000120142

0000120141

0000120139

0000120142

0000120142

0000120140

0000120141

0000120140

0000120140

0000120139

0000120139

0000120138

0000120137

0000120139

0000120139

0000120139

0000120136

0000120137

0000120139

0000120135

0000120136

0000120135

0000120136

0000120134

0000120134

0000120134

0000120132

0000120137

0000120134

0000120138

0000120138

0000120135

0000120138

0000120136

0000120137

0000120138

0000120138

0000120138

0000120139

0000120141

0000120141

0000120137

0000120139

0000120139

0000120138

0000120139

0000120138

0000120140

0000120137

0000120139

0000120140

0000120137

0000120138

0000120139

0000120142

0000120139

0000120138

0000120139

0000120136

0000120138

0000120137

0000120136

0000120136

0000120135

0000120137

0000120135

0000120133

0000120135

0000120136

0000120132

0000120130

0000120133

0000120132

0000120133

0000120131

0000120131

0000120130

0000120130

0000120130

0000120128

0000120130

0000120130

0000120130

0000120132

0000120130

0000120133

0000120130

0000120132

0000120132

0000120130

0000120129

0000120129

0000120132

0000120130

0000120135

0000120131

0000120133

0000120131

0000120130

0000120129

0000120131

0000120130

0000120131

0000120127

0000120128

0000120126

0000120129

0000120129

0000120126

0000120129

0000120128

0000120131

0000120131

0000120130

0000120131

0000120130

0000120128

0000120129

0000120128

0000120126

0000120129

0000120128

0000120127

0000120129

0000120127

0000120127

0000120128

0000120128

0000120129

0000120126

0000120126

0000120125

0000120125

0000120124

0000120124

0000120123

0000120123

0000120123

0000120124

0000120123

0000120123

0000120124

0000120123

0000120124

0000120124

0000120124

0000120124

0000120125

0000120127

0000120125

0000120124

0000120127

0000120127

0000120127

0000120124

0000120129

0000120129

0000120133

0000120132

0000120132

0000120132

0000120134

0000120132

0000120136

0000120136

0000120136

0000120140

0000120138

0000120137

0000120137

0000120138

0000120140

0000120139

0000120137

0000120139

0000120139

0000120139

0000120138

0000120140

0000120141

0000120138

0000120138

0000120138

0000120138

0000120136

0000120140

0000120139

0000120140

0000120139

0000120140

0000120141

0000120141

0000120139

0000120138

0000120138

0000120140

0000120141

0000120141

0000120141

0000120142

0000120143

0000120142

0000120143

0000120141

0000120142

0000120143

0000120143

0000120140

0000120142

0000120140

0000120141

0000120141

0000120138

0000120139

0000120139

0000120140

0000120139

0000120140

0000120142

0000120141

0000120142

0000120140

0000120140

0000120138

0000120138

0000120137

0000120136

0000120139

0000120134

0000120136

0000120135

0000120134

0000120131

0000120131

0000120130

0000120132

0000120130

0000120130

0000120132

0000120132

0000120131

0000120132

0000120131

0000120131

0000120131

0000120131

0000120131

0000120131

0000120128

0000120129

0000120125

0000120126

0000120126

0000120129

0000120129

0000120128

0000120132

0000120131

0000120130

0000120131

0000120131

0000120131

0000120133

0000120131

0000120130

0000120133

0000120133

0000120131

0000120132

0000120134

0000120133

0000120134

0000120129

0000120129

0000120129

0000120132

0000120131

0000120132

0000120133

0000120133

0000120131

0000120133

0000120134

0000120134

0000120133

0000120133

0000120134

0000120135

0000120135

0000120134

0000120132

0000120134

0000120132

0000120133

0000120132

0000120128

0000120131

0000120130

0000120129

0000120133

0000120132

0000120131

0000120132

0000120132

0000120134

0000120133

0000120135

0000120135

0000120136

0000120137

0000120138

0000120140

0000120135

0000120136

0000120137

0000120139

0000120138

0000120138

0000120138

0000120139

0000120139

0000120140

0000120142

0000120141

0000120141

0000120141

0000120141

0000120145

0000120143

0000120143

0000120145

0000120148

0000120144

0000120145

0000120149

0000120147

0000120146

0000120145

0000120149

0000120147

0000120149

0000120147

0000120147

0000120147

0000120149

0000120149

0000120152

0000120151

0000120153

0000120154

0000120155

0000120155

0000120155

0000120155

0000120155

0000120155

0000120154

0000120155

0000120157

0000120156

0000120154

0000120156

0000120156

0000120158

0000120156

0000120158

0000120158

0000120157

0000120159

0000120161

0000120162

0000120161

0000120161

0000120161

0000120163

0000120165

0000120165

0000120166

0000120164

0000120165

0000120164

0000120167

0000120165

0000120164

0000120164

0000120165

0000120165

0000120162

0000120163

0000120162

0000120160

0000120161

0000120162

0000120162

0000120163

0000120162

0000120162

0000120162

0000120161

0000120162

0000120161

0000120161

0000120162

0000120161

0000120162

0000120161

0000120161

0000120162

0000120161

0000120160

0000120161

0000120159

0000120163

0000120162

0000120161

0000120162

0000120163

0000120162

0000120162

0000120163

0000120164

0000120164

0000120163

0000120166

0000120168

0000120169

0000120167

0000120167

0000120167

0000120169

0000120167

0000120169

0000120170

0000120166

0000120167

0000120167

0000120166

0000120167

0000120165

0000120164

0000120164

0000120165

0000120164

0000120166

0000120166

0000120168

0000120165

0000120169

0000120168

0000120169

0000120165

0000120171

0000120171

0000120168

0000120173

0000120172

0000120173

0000120171

0000120169

0000120171

0000120171

0000120171

0000120173

0000120172

0000120169

0000120171

0000120171

0000120167

0000120170

0000120168

0000120170

0000120170

0000120170

0000120171

0000120170

0000120167

0000120170

0000120168

0000120168

0000120171

0000120169

0000120166

0000120169

0000120166

0000120165

0000120164

0000120169

0000120168

0000120166

0000120165

0000120168

0000120168

0000120167

0000120166

0000120169

0000120169

0000120170

0000120170

0000120170

0000120172

0000120171

0000120169

0000120172

0000120171

0000120172

0000120172

0000120170

0000120172

0000120173

0000120170

0000120173

0000120171

0000120173

0000120172

0000120176

0000120174

0000120175

0000120177

0000120175

0000120175

0000120174

0000120176

0000120178

0000120178

0000120176

0000120178

0000120177

0000120175

0000120174

0000120176

0000120174

0000120174

0000120175

0000120172

0000120175

0000120173

0000120174

0000120175

0000120174

0000120174

0000120175

0000120177

0000120176

0000120174

0000120173

0000120177

0000120173

0000120174

0000120174

0000120173

0000120173

0000120172

0000120174

0000120171

0000120171

0000120170

0000120168

0000120165

0000120170

0000120164

0000120165

0000120165

0000120164

0000120161

0000120162

0000120159

0000120159

0000120160

0000120159

0000120158

0000120157

0000120154

0000120154

0000120153

0000120152

0000120154

0000120154

0000120158

0000120156

0000120155

0000120156

0000120159

0000120158

0000120161

0000120159

0000120159

0000120159

0000120158

0000120162

0000120158

0000120157

0000120158

0000120156

0000120154

0000120154

0000120152

0000120155

0000120154

0000120151

0000120152

0000120154

0000120154

0000120155

0000120155

0000120158

0000120157

0000120155

0000120155

0000120156

0000120156

0000120154

0000120155

0000120153

0000120154

0000120153

0000120153

0000120150

0000120152

0000120154

0000120152

0000120153

0000120151

0000120152

0000120151

0000120151

0000120150

0000120148

0000120150

0000120149

0000120149

0000120151

0000120153

0000120151

0000120154

0000120153

0000120156

0000120153

0000120154

0000120153

0000120157

0000120158

0000120160

0000120161

0000120159

0000120159

0000120162

0000120164

0000120164

0000120162

0000120165

0000120167

0000120165

0000120170

0000120170

0000120172

0000120173

0000120173

0000120174

0000120174

0000120173

0000120171

0000120172

0000120175

0000120173

0000120173

0000120174

0000120174

0000120175

0000120175

0000120173

0000120177

0000120176

0000120174

0000120174

0000120174

0000120176

0000120173

0000120175

0000120177

0000120179

0000120177

0000120177

0000120180

0000120180

0000120181

0000120184

0000120181

0000120183

0000120184

0000120185

0000120185

0000120185

0000120184

0000120185

0000120187

0000120187

0000120188

0000120190

0000120190

0000120190

0000120188

0000120191

0000120192

0000120193

0000120193

0000120194

0000120195

0000120197

0000120196

0000120196

0000120199

0000120199

0000120195

0000120199

0000120199

0000120197

0000120199

0000120201

0000120199

0000120201

0000120204

0000120203

0000120202

0000120205

0000120204

0000120204

0000120206

0000120207

0000120205

0000120205

0000120206

0000120210

0000120207

0000120206

0000120207

0000120207

0000120205

0000120208

0000120208

0000120205

0000120208

0000120205

0000120208

0000120209

0000120204

0000120204

0000120207

0000120207

0000120207

0000120204

0000120207

0000120207

0000120205

0000120209

0000120208

0000120210

0000120208

0000120210

0000120211

0000120209

0000120208

0000120211

0000120209

0000120210

0000120208

0000120207

0000120207

0000120206

0000120206

0000120205

0000120206

0000120202

0000120204

0000120201

0000120203

0000120199

0000120198

0000120199

0000120201

0000120203

0000120203

0000120201

0000120201

0000120199

0000120197

0000120197

0000120196

0000120197

0000120194

0000120196

0000120194

0000120194

0000120191

0000120192

0000120192

0000120192

0000120189

0000120190

0000120190

0000120189

0000120191

0000120192

0000120190

0000120195

0000120193

0000120194

0000120196

0000120195

0000120195

0000120198

0000120198

0000120197

0000120195

0000120194

0000120195

0000120193

0000120192

0000120195

0000120194

0000120194

0000120192

0000120193

0000120191

0000120191

0000120190

0000120190

0000120191

0000120190

0000120187

0000120186

0000120187

0000120187

0000120184

0000120183

0000120182

0000120181

0000120181

0000120183

0000120179

0000120179

0000120178

0000120180

0000120181

0000120180

0000120181

0000120181

0000120184

0000120184

0000120184

0000120188

0000120186

0000120186

0000120187

0000120188

0000120186

0000120188

0000120185

0000120191

0000120188

0000120189

0000120190

0000120189

0000120188

0000120189

0000120189

0000120191

0000120192

0000120193

0000120195

0000120197

0000120194

0000120196

0000120198

0000120200

0000120200

0000120201

0000120202

0000120201

0000120202

0000120203

0000120200

0000120200

0000120202

0000120204

0000120204

0000120205

0000120205

0000120205

0000120203

0000120206

0000120206

0000120206

0000120208

0000120207

0000120207

0000120209

0000120210

0000120211

0000120212

0000120211

0000120213

0000120215

0000120214

0000120213

0000120212

0000120216

0000120212

0000120214

0000120213

0000120211

0000120211

0000120212

0000120213

0000120214

0000120215

0000120212

0000120215

0000120214

0000120214

0000120214

0000120214

0000120216

0000120213

0000120214

0000120214

0000120214

0000120215

0000120214

0000120213

0000120214

0000120216

0000120215

0000120216

0000120217

0000120219

0000120217

0000120215

0000120217

0000120214

0000120215

0000120216

0000120213

0000120215

0000120213

0000120215

0000120214

0000120216

0000120213

0000120215

0000120216

0000120216

0000120217

0000120218

0000120218

0000120220

0000120220

0000120218

0000120219

0000120218

0000120216

0000120218

0000120217

0000120217

0000120213

0000120214

0000120210

0000120212

0000120208

0000120208

0000120206

0000120209

0000120207

0000120206

0000120207

0000120207

0000120204

0000120205

0000120207

0000120207

0000120207

0000120209

0000120209

0000120207

0000120205

0000120204

0000120206

0000120208

0000120206

0000120207

0000120210

0000120208

0000120210

0000120208

0000120210

0000120215

0000120214

0000120215

0000120214

0000120212

0000120209

0000120211

0000120209

0000120210

0000120210

0000120210

0000120212

0000120212

0000120213

0000120215

0000120213

0000120213

0000120212

0000120213

0000120213

0000120210

0000120211

0000120211

0000120211

0000120212

0000120211

0000120214

0000120212

0000120211

0000120212

0000120213

0000120213

0000120214

0000120211

0000120214

0000120213

0000120210

0000120210

0000120212

0000120211

0000120214

0000120213

0000120213

0000120213

0000120215

0000120213

0000120212

0000120214

0000120214

0000120215

0000120214

0000120218

0000120216

0000120218

0000120217

0000120220

0000120218

0000120219

0000120222

0000120219

0000120218

0000120221

0000120220

0000120219

0000120221

0000120225

0000120223

0000120222

0000120223

0000120222

0000120221

0000120225

0000120224

0000120222

0000120219

0000120219

0000120220

0000120217

0000120218

0000120217

0000120218

0000120220

0000120219

0000120219

0000120219

0000120221

0000120219

0000120221

0000120218

0000120221

0000120220

0000120221

0000120222

0000120219

0000120220

0000120218

0000120218

0000120220

0000120217

0000120218

0000120220

0000120221

0000120220

0000120218

0000120220

0000120220

0000120220

0000120220

0000120222

0000120219

0000120220

0000120217

0000120220

0000120219

0000120216

0000120215

0000120216

0000120211

0000120212

0000120211

0000120210

0000120208

0000120207

0000120204

0000120207

0000120205

0000120205

0000120204

0000120205

0000120205

0000120204

0000120205

0000120203

0000120203

0000120198

0000120203

0000120202

0000120201

0000120202

0000120202

0000120201

0000120200

0000120199

0000120199

0000120199

0000120201

0000120200

0000120201

0000120201

0000120203

0000120202

0000120203

0000120200

0000120203

0000120203

0000120205

0000120205

0000120206

0000120208

0000120209

0000120209

0000120210

0000120212

0000120213

0000120213

0000120214

0000120212

0000120213

0000120211

0000120207

0000120210

0000120213

0000120210

0000120209

0000120213

0000120208

0000120211

0000120211

0000120213

0000120209

0000120210

0000120213

0000120214

0000120211

0000120213

0000120213

0000120209

0000120207

0000120208

0000120207

0000120208

0000120205

0000120206

0000120206

0000120207

0000120208

0000120209

0000120208

0000120208

0000120208

0000120208

0000120207

0000120206

0000120203

0000120205

0000120205

0000120204

0000120206

0000120203

0000120205

0000120205

0000120206

0000120204

0000120206

0000120206

0000120207

0000120207

0000120207

0000120209

0000120206

0000120205

0000120209

0000120209

0000120209

0000120209

0000120207

0000120207

0000120207

0000120210

0000120210

0000120208

0000120204

0000120204

0000120205

0000120204

0000120206

0000120205

0000120207

0000120206

0000120208

0000120207

0000120208

0000120209

0000120204

0000120207

0000120208

0000120208

0000120209

0000120209

0000120208

0000120209

0000120206

0000120206

0000120210

0000120208

0000120206

0000120209

0000120209

0000120208

0000120210

0000120208

0000120207

0000120208

0000120208

0000120205

0000120205

0000120207

0000120207

0000120206

0000120208

0000120206

0000120204

0000120205

0000120208

0000120204

0000120205

0000120206

0000120204

0000120204

0000120203

0000120204

0000120204

0000120204

0000120202

0000120203

0000120202

0000120202

0000120202

0000120203

0000120200

0000120199

0000120199

0000120201

0000120199

0000120200

0000120198

0000120195

0000120197

0000120198

0000120196

0000120196

0000120198

0000120199

0000120199

0000120196

0000120198

0000120198

0000120196

0000120195

0000120197

0000120196

0000120194

0000120197

0000120198

0000120197

0000120195

0000120195

0000120194

0000120195

0000120191

0000120192

0000120192

0000120189

0000120192

0000120192

0000120189

0000120191

0000120193

0000120193

0000120194

0000120192

0000120193

0000120192

0000120192

0000120188

0000120189

0000120187

0000120189

0000120190

0000120191

0000120191

0000120189

0000120188

0000120187

0000120190

0000120188

0000120189

0000120189

0000120186

0000120191

0000120192

0000120191

0000120190

0000120193

0000120191

0000120192

0000120195

0000120196

0000120195

0000120195

0000120193

0000120195

0000120197

0000120196

0000120196

0000120196

0000120197

0000120196

0000120196

0000120197

0000120198

0000120196

0000120197

0000120196

0000120196

0000120197

0000120197

0000120196

0000120199

0000120196

0000120194

0000120193

0000120194

0000120193

0000120194

0000120194

0000120196

0000120194

0000120194

0000120195

0000120194

0000120195

0000120194

0000120197

0000120199

0000120197

0000120194

0000120192

0000120196

0000120194

0000120193

0000120195

0000120196

0000120193

0000120193

0000120195

0000120196

0000120191

0000120194

0000120192

0000120191

0000120190

0000120191

0000120191

0000120193

0000120191

0000120192

0000120191

0000120191

0000120190

0000120190

0000120190

0000120190

0000120189

0000120188

0000120190

0000120191

0000120190

0000120190

0000120192

0000120192

0000120192

0000120191

0000120191

0000120191

0000120190

0000120186

0000120189

0000120190

0000120190

0000120189

0000120190

0000120188

0000120191

0000120188

0000120192

0000120190

0000120192

0000120190

0000120191

0000120190

0000120191

0000120192

0000120192

0000120192

0000120191

0000120191

0000120192

0000120192

0000120190

0000120190

0000120189

0000120190

0000120188

0000120189

0000120185

0000120187

0000120185

0000120187

0000120187

0000120188

0000120189

0000120189

0000120185

0000120188

0000120186

0000120186

0000120187

0000120187

0000120187

0000120186

0000120186

0000120188

0000120186

0000120186

0000120188

0000120185

0000120183

0000120185

0000120185

0000120186

0000120186

0000120185

0000120188

0000120185

0000120184

0000120184

0000120184

0000120182

0000120185

0000120182

0000120182

0000120181

0000120183

0000120181

0000120185

0000120182

0000120184

0000120183

0000120183

0000120184

0000120181

0000120180

0000120182

0000120183

0000120183

0000120184

0000120183

0000120183

0000120181

0000120183

0000120183

0000120182

0000120181

0000120180

0000120182

0000120180

0000120181

0000120180

0000120179

0000120179

0000120181

0000120179

0000120178

0000120178

0000120181

0000120180

0000120181

0000120176

0000120178

0000120177

0000120181

0000120177

0000120179

0000120178

0000120178

0000120181

0000120177

0000120181

0000120179

0000120183

0000120183

0000120182

0000120182

0000120179

0000120181

0000120181

0000120178

0000120178

0000120179

0000120179

0000120175

0000120174

0000120178

0000120177

0000120175

0000120174

0000120173

0000120172

0000120174

0000120175

0000120174

0000120174

0000120172

0000120170

0000120171

0000120171

0000120172

0000120171

0000120171

0000120171

0000120171

0000120168

0000120170

0000120170

0000120169

0000120168

0000120169

0000120171

0000120170

0000120172

0000120172

0000120173

0000120173

0000120173

0000120172

0000120172

0000120173

0000120172

0000120174

0000120173

0000120173

0000120171

0000120173

0000120171

0000120172

0000120172

0000120172

0000120173

0000120172

0000120172

0000120173

0000120174

0000120175

0000120175

0000120174

0000120175

0000120173

0000120173

0000120172

0000120175

0000120174

0000120176

0000120172

0000120174

0000120174

0000120173

0000120175

0000120173

0000120173

0000120172

0000120171

0000120172

0000120170

0000120170

0000120173

0000120172

0000120171

0000120168

0000120170

0000120171

0000120169

0000120173

0000120171

0000120171

0000120171

0000120169

0000120170

0000120169

0000120168

0000120169

0000120169

0000120166

0000120167

0000120168

0000120165

0000120164

0000120167

0000120165

0000120166

0000120164

0000120166

0000120164

0000120164

0000120165

0000120164

0000120165

0000120163

0000120164

0000120163

0000120162

0000120161

0000120163

0000120164

0000120162

0000120161

0000120163

0000120159

0000120161

0000120161

0000120160

0000120161

0000120162

0000120160

0000120160

0000120163

0000120160

0000120161

0000120161

0000120162

0000120165

0000120162

0000120162

0000120161

0000120163

0000120161

0000120162

0000120164

0000120164

0000120164

0000120164

0000120166

0000120166

0000120165

0000120166

0000120168

0000120167

0000120166

0000120167

0000120167

0000120167

0000120165

0000120168

0000120168

0000120168

0000120166

0000120167

0000120167

0000120168

0000120167

0000120168

0000120165

0000120167

0000120164

0000120167

0000120165

0000120160

0000120163

0000120163

0000120163

0000120166

0000120164

0000120167

0000120166

0000120166

0000120164

0000120166

0000120166

0000120164

0000120166

0000120166

0000120164

0000120166

0000120165

0000120167

0000120167

0000120168

0000120165

0000120166

0000120167

0000120164

0000120164

0000120165

0000120163

0000120164

0000120160

0000120162

0000120162

0000120163

0000120163

0000120160

0000120162

0000120161

0000120162

0000120162

0000120161

0000120162

0000120160

0000120161

0000120159

0000120161

0000120161

0000120161

0000120159

0000120158

0000120159

0000120162

0000120161

0000120163

0000120160

0000120162

0000120161

0000120159

0000120161

0000120159

0000120159

0000120159

0000120161

0000120158

0000120157

0000120158

0000120158

0000120157

0000120156

0000120154

0000120159

0000120156

0000120156

0000120155

0000120155

0000120158

0000120157

0000120156

0000120159

0000120157

0000120159

0000120160

0000120158

0000120158

0000120161

0000120160

0000120161

0000120160

0000120162

0000120162

0000120163

0000120161

0000120159

0000120160

0000120160

0000120159

0000120161

0000120159

0000120162

0000120161

0000120160

0000120162

0000120160

0000120163

0000120160

0000120162

0000120161

0000120162

0000120160

0000120162

0000120162

0000120161

0000120161

0000120162

0000120161

0000120160

0000120158

0000120161

0000120162

0000120162

0000120161

0000120163

0000120162

0000120162

0000120158

0000120162

0000120162

0000120158

0000120160

0000120161

0000120160

0000120162

0000120160

0000120160

0000120160

0000120159

0000120159

0000120159

0000120158

0000120159

0000120157

0000120161

0000120160

0000120158

0000120156

0000120158

0000120156

0000120156

0000120154

0000120156

0000120155

0000120155

0000120155

0000120157

0000120155

0000120155

0000120154

0000120156

0000120156

0000120154

0000120157

0000120157

0000120156

0000120156

0000120154

0000120157

0000120157

0000120157

0000120157

0000120159

0000120157

0000120158

0000120158

0000120158

0000120158

0000120156

0000120157

0000120159

0000120159

0000120156

0000120156

0000120156

0000120158

0000120158

0000120159

0000120159

0000120158

0000120159

0000120157

0000120159

0000120159

0000120158

0000120159

0000120160

0000120158

0000120156

0000120158

0000120156

0000120159

0000120156

0000120161

0000120159

0000120160

0000120158

0000120159

0000120159

0000120159

0000120159

0000120158

0000120160

0000120157

0000120158

0000120159

0000120158

0000120158

0000120158

0000120160

0000120160

0000120157

0000120160

0000120156

0000120157

0000120155

0000120154

0000120155

0000120155

0000120155

0000120156

0000120154

0000120157

0000120154

0000120153

0000120154

0000120155

0000120153

0000120154

0000120154

0000120156

0000120153

0000120154

0000120156

0000120155

0000120155

0000120154

0000120155

0000120153

0000120154

0000120152

0000120154

0000120154

0000120154

0000120154

0000120152

0000120152

0000120153

0000120153

0000120155

0000120152

0000120153

0000120151

0000120153

0000120151

0000120154

0000120155

0000120154

0000120153

0000120156

0000120156

0000120156

0000120154

0000120154

0000120154

0000120154

0000120152

0000120153

0000120156

0000120154

0000120154

0000120154

0000120154

0000120152

0000120154

0000120153

0000120153

0000120154

0000120154

0000120153

0000120153

0000120153

0000120153

0000120152

0000120155

0000120153

0000120150

0000120152

0000120151

0000120153

0000120152

0000120153

0000120150

0000120151

0000120154

0000120153

0000120155

0000120153

0000120154

0000120154

0000120157

0000120154

0000120155

0000120157

0000120157

0000120157

0000120157

0000120158

0000120155

0000120159

0000120158

0000120159

0000120159

0000120156

0000120155

0000120154

0000120157

0000120154

0000120153

0000120152

0000120154

0000120155

0000120154

0000120154

0000120154

0000120155

0000120156

0000120155

0000120153

0000120154

0000120156

0000120158

0000120154

0000120155

0000120155

0000120157

0000120156

0000120153

0000120154

0000120155

0000120153

0000120155

0000120156

0000120156

0000120154

0000120152

0000120153

0000120154

0000120153

0000120152

0000120156

0000120152

0000120153

0000120150

0000120153

0000120151

0000120152

0000120152

0000120150

0000120148

0000120148

0000120150

0000120148

0000120147

0000120148

0000120147

0000120149

0000120148

0000120147

0000120146

0000120146

0000120146

0000120145

0000120146

0000120144

0000120145

0000120146

0000120146

0000120143

0000120144

0000120147

0000120145

0000120144

0000120147

0000120145

0000120149

0000120147

0000120145

0000120149

0000120147

0000120147

0000120147

0000120147

0000120148

0000120148

0000120147

0000120146

0000120149

0000120148

0000120149

0000120148

0000120150

0000120148

0000120150

0000120149

0000120149

0000120149

0000120152

0000120149

0000120148

0000120149

0000120150

0000120147

0000120147

0000120149

0000120149

0000120151

0000120149

0000120150

0000120153

0000120150

0000120151

0000120150

0000120150

0000120150

0000120150

0000120150

0000120149

0000120150

0000120149

0000120152

0000120155

0000120153

0000120154

0000120154

0000120152

0000120151

0000120153

0000120154

0000120154

0000120151

0000120153

0000120149

0000120156

0000120155

0000120152

0000120151

0000120151

0000120150

0000120151

0000120151

0000120153

0000120153

0000120153

0000120151

0000120154

0000120151

0000120150

0000120151

0000120148

0000120149

0000120150

0000120149

0000120147

0000120149

0000120150

0000120149

0000120144

0000120146

0000120147

0000120146

0000120145

0000120146

0000120146

0000120144

0000120144

0000120146

0000120145

0000120142

0000120142

0000120143

0000120142

0000120141

0000120141

0000120143

0000120140

0000120143

0000120146

0000120146

0000120146

0000120148

0000120145

0000120147

0000120148

0000120147

0000120148

0000120149

0000120147

0000120148

0000120149

0000120144

0000120146

0000120146

0000120145

0000120148

0000120146

0000120145

0000120146

0000120146

0000120147

0000120145

0000120147

0000120145

0000120146

0000120146

0000120148

0000120146

0000120147

0000120145

0000120148

0000120147

0000120144

0000120144

0000120147

0000120144

0000120144

0000120146

0000120146

0000120146

0000120144

0000120145

0000120148

0000120146

0000120146

0000120147

0000120146

0000120145

0000120145

0000120147

0000120146

0000120148

0000120147

0000120150

0000120147

0000120148

0000120147

0000120149

0000120148

0000120145

0000120146

0000120147

0000120147

0000120144

0000120147

0000120147

0000120143

0000120145

0000120143

0000120146

0000120146

0000120144

0000120145

0000120149

0000120145

0000120144

0000120147

0000120146

0000120147

0000120147

0000120147

0000120147

0000120144

0000120145

0000120144

0000120143

0000120145

0000120146

0000120146

0000120144

0000120147

0000120146

0000120146

0000120146

0000120146

0000120146

0000120147

0000120146

0000120144

0000120144

0000120143

0000120142

0000120139

0000120142

0000120140

0000120137

0000120137

0000120138

0000120139

0000120139

0000120139

0000120140

0000120140

0000120141

0000120141

0000120141

0000120141

0000120142

0000120145

0000120144

0000120142

0000120143

0000120144

0000120145

0000120143

0000120144

0000120146

0000120147

0000120147

0000120147

0000120149

0000120150

0000120149

0000120150

0000120151

0000120154

0000120150

0000120150

0000120152

0000120150

0000120149

0000120148

0000120149

0000120149

0000120150

0000120148

0000120150

0000120148

0000120148

0000120148

0000120150

0000120148

0000120147

0000120147

0000120145

0000120147

0000120147

0000120147

0000120145

0000120144

0000120144

0000120143

0000120143

0000120141

0000120144

0000120142

0000120142

0000120145

0000120144

0000120143

0000120141

0000120142

0000120142

0000120142

0000120141

0000120139

0000120143

0000120141

0000120140

0000120140

0000120142

0000120141

0000120142

0000120143

0000120142

0000120143

0000120144

0000120143

0000120142

0000120143

0000120143

0000120141

0000120141

0000120142

0000120140

0000120143

0000120139

0000120140

0000120139

0000120141

0000120141

0000120138

0000120139

0000120137

0000120136

0000120140

0000120138

0000120135

0000120138

0000120141

0000120137

0000120136

0000120138

0000120138

0000120135

0000120137

0000120139

0000120138

0000120138

0000120138

0000120136

0000120137

0000120137

0000120137

0000120135

0000120137

0000120135

0000120135

0000120134

0000120136

0000120135

0000120134

0000120134

0000120135

0000120135

0000120137

0000120135

0000120137

0000120134

0000120135

0000120136

0000120135

0000120134

0000120134

0000120135

0000120135

0000120134

0000120135

0000120135

0000120136

0000120135

0000120136

0000120136

0000120136

0000120135

0000120137

0000120136

0000120136

0000120137

0000120137

0000120135

0000120134

0000120136

0000120136

0000120136

0000120134

0000120135

0000120134

0000120133

0000120135

0000120134

0000120137

0000120136

0000120136

0000120136

0000120135

0000120134

0000120135

0000120137

0000120134

0000120134

0000120138

0000120138

0000120137

0000120136

0000120137

0000120138

0000120136

0000120136

0000120137

0000120136

0000120135

0000120135

0000120134

0000120137

0000120137

0000120134

0000120137

0000120135

0000120134

0000120135

0000120136

0000120136

0000120134

0000120135

0000120138

0000120134

0000120137

0000120136

0000120137

0000120140

0000120134

0000120136

0000120137

0000120137

0000120137

0000120139

0000120138

0000120136

0000120139

0000120140

0000120138

0000120140

0000120140

0000120140

0000120140

0000120139

0000120140

0000120140

0000120142

0000120142

0000120140

0000120140

0000120140

0000120140

0000120142

0000120144

0000120140

0000120142

0000120141

0000120141

0000120141

0000120139

0000120140

0000120138

0000120142

0000120139

0000120139

0000120139

0000120135

0000120140

0000120140

0000120138

0000120135

0000120136

0000120139

0000120136

0000120136

0000120136

0000120135

0000120134

0000120136

0000120135

0000120134

0000120134

0000120134

0000120136

0000120131

0000120133

0000120134

0000120135

0000120135

0000120135

0000120138

0000120137

0000120136

0000120137

0000120138

0000120136

0000120138

0000120138

0000120139

0000120138

0000120138

0000120140

0000120138

0000120140

0000120136

0000120138

0000120138

0000120139

0000120141

0000120141

0000120144

0000120143

0000120141

0000120142

0000120142

0000120140

0000120140

0000120140

0000120140

0000120142

0000120141

0000120140

0000120140

0000120141

0000120138

0000120140

0000120137

0000120140

0000120137

0000120138

0000120140

0000120137

0000120137

0000120137

0000120134

0000120136

0000120138

0000120134

0000120135

0000120138

0000120137

0000120137

0000120138

0000120135

0000120134

0000120136

0000120134

0000120135

0000120135

0000120131

0000120135

0000120137

0000120135

0000120137

0000120136

0000120135

0000120134

0000120137

0000120135

0000120136

0000120134

0000120134

0000120133

0000120133

0000120132

0000120132

0000120131

0000120130

0000120128

0000120128

0000120133

0000120130

0000120131

0000120129

0000120133

0000120134

0000120134

0000120134

0000120135

0000120136

0000120135

0000120138

0000120136

0000120140

0000120136

0000120137

0000120140

0000120139

0000120136

0000120139

0000120139

0000120141

0000120138

0000120138

0000120140

0000120141

0000120141

0000120138

0000120139

0000120141

0000120138

0000120139

0000120138

0000120141

0000120135

0000120139

0000120137

0000120136

0000120141

0000120142

0000120142

0000120142

0000120143

0000120142

0000120141

0000120141

0000120146

0000120141

0000120142

0000120142

0000120141

0000120141

0000120138

0000120138

0000120139

0000120138

0000120139

0000120138

0000120139

0000120135

0000120138

0000120139

0000120142

0000120141

0000120142

0000120142

0000120141

0000120143

0000120142

0000120143

0000120144

0000120144

0000120145

0000120148

0000120147

0000120145

0000120146

0000120147

0000120148

0000120149

0000120150

0000120151

0000120151

0000120152

0000120152

0000120154

0000120151

0000120152

0000120153

0000120153

0000120153

0000120152

0000120153

0000120151

0000120151

0000120150

0000120149

0000120151

0000120148

0000120151

0000120149

0000120151

0000120149

0000120152

0000120149

0000120152

0000120152

0000120151

0000120150

0000120148

0000120148

0000120147

0000120145

0000120144

0000120144

0000120144

0000120141

0000120142

0000120139

0000120138

0000120140

0000120138

0000120141

0000120139

0000120139

0000120139

0000120142

0000120139

0000120142

0000120140

0000120140

0000120140

0000120140

0000120142

0000120141

0000120143

0000120142

0000120144

0000120145

0000120144

0000120144

0000120144

0000120146

0000120146

0000120146

0000120147

0000120149

0000120152

0000120149

0000120148

0000120154

0000120152

0000120151

0000120153

0000120155

0000120156

0000120158

0000120157

0000120157

0000120160

0000120159

0000120159

0000120159

0000120157

0000120159

0000120159

0000120159

0000120161

0000120163

0000120163

0000120162

0000120162

0000120160

0000120162

0000120163

0000120162

0000120162

0000120162

0000120162

0000120162

0000120163

0000120163

0000120165

0000120162

0000120164

0000120166

0000120164

0000120164

0000120164

0000120162

0000120161

0000120164

0000120161

0000120163

0000120162

0000120160

0000120159

0000120160

0000120156

0000120157

0000120156

0000120160

0000120158

0000120157

0000120156

0000120159

0000120161

0000120160

0000120160

0000120161

0000120158

0000120161

0000120157

0000120159

0000120156

0000120156

0000120158

0000120161

0000120161

0000120158

0000120161

0000120163

0000120164

0000120163

0000120163

0000120164

0000120164

0000120166

0000120168

0000120167

0000120170

0000120165

0000120167

0000120168

0000120168

0000120168

0000120169

0000120169

0000120167

0000120166

0000120166

0000120166

0000120167

0000120165

0000120167

0000120169

0000120168

0000120168

0000120169

0000120169

0000120170

0000120172

0000120168

0000120169

0000120168

0000120168

0000120170

0000120171

0000120169

0000120170

0000120172

0000120173

0000120171

0000120174

0000120174

0000120174

0000120173

0000120174

0000120175

0000120174

0000120173

0000120172

0000120171

0000120167

0000120169

0000120164

0000120166

0000120166

0000120163

0000120162

0000120162

0000120162

0000120162

0000120162

0000120160

0000120161

0000120160

0000120158

0000120158

0000120156

0000120156

0000120153

0000120154

0000120153

0000120151

0000120152

0000120154

0000120155

0000120154

0000120153

0000120157

0000120156

0000120154

0000120155

0000120156

0000120156

0000120156

0000120156

0000120155

0000120154

0000120156

0000120156

0000120156

0000120154

0000120157

0000120156

0000120157

0000120157

0000120153

0000120153

0000120152

0000120152

0000120154

0000120154

0000120152

0000120151

0000120152

0000120152

0000120152

0000120152

0000120154

0000120154

0000120154

0000120150

0000120154

0000120151

0000120154

0000120151

0000120154

0000120150

0000120152

0000120150

0000120149

0000120149

0000120148

0000120149

0000120144

0000120147

0000120144

0000120147

0000120144

0000120143

0000120143

0000120145

0000120145

0000120145

0000120148

0000120147

0000120145

0000120149

0000120152

0000120152

0000120154

0000120154

0000120156

0000120157

0000120157

0000120159

0000120159

0000120157

0000120157

0000120160

0000120160

0000120160

0000120161

0000120163

0000120163

0000120163

0000120165

0000120166

0000120165

0000120165

0000120167

0000120169

0000120168

0000120170

0000120168

0000120169

0000120168

0000120168

0000120168

0000120170

0000120168

0000120169

0000120169

0000120169

0000120170

0000120170

0000120170

0000120170

0000120174

0000120174

0000120172

0000120174

0000120172

0000120172

0000120172

0000120171

0000120172

0000120169

0000120170

0000120169

0000120168

0000120166

0000120164

0000120166

0000120162

0000120165

0000120165

0000120165

0000120163

0000120162

0000120160

0000120161

0000120161

0000120161

0000120160

0000120161

0000120160

0000120163

0000120165

0000120167

0000120165

0000120163

0000120163

0000120162

0000120163

0000120163

0000120164

0000120161

0000120161

0000120159

0000120159

0000120162

0000120161

0000120161

0000120160

0000120160

0000120164

0000120162

0000120161

0000120163

0000120161

0000120163

0000120164

0000120166

0000120164

0000120168

0000120165

0000120167

0000120164

0000120164

0000120164

0000120163

0000120162

0000120162

0000120161

0000120163

0000120161

0000120163

0000120162

0000120164

0000120165

0000120165

0000120166

0000120165

0000120165

0000120166

0000120163

0000120165

0000120165

0000120164

0000120162

0000120163

0000120158

0000120162

0000120163

0000120160

0000120159

0000120159

0000120159

0000120158

0000120156

0000120155

0000120155

0000120156

0000120153

0000120153

0000120154

0000120158

0000120154

0000120153

0000120154

0000120156

0000120154

0000120155

0000120159

0000120154

0000120155

0000120154

0000120152

0000120153

0000120151

0000120152

0000120152

0000120150

0000120152

0000120151

0000120152

0000120151

0000120153

0000120152

0000120152

0000120152

0000120149

0000120151

0000120149

0000120151

0000120151

0000120153

0000120152

0000120157

0000120155

0000120154

0000120157

0000120157

0000120158

0000120157

0000120158

0000120160

0000120161

0000120161

0000120160

0000120161

0000120160

0000120162

0000120163

0000120165

0000120165

0000120166

0000120165

0000120169

0000120169

0000120168

0000120169

0000120170

0000120171

0000120171

0000120169

0000120171

0000120173

0000120173

0000120173

0000120172

0000120173

0000120175

0000120174

0000120172

0000120173

0000120172

0000120174

0000120174

0000120178

0000120180

0000120179

0000120181

0000120184

0000120184

0000120185

0000120185

0000120187

0000120186

0000120186

0000120188

0000120190

0000120186

0000120188

0000120188

0000120189

0000120188

0000120190

0000120190

0000120189

0000120189

0000120189

0000120188

0000120190

0000120192

0000120194

0000120191

0000120191

0000120192

0000120194

0000120195

0000120195

0000120195

0000120196

0000120198

0000120198

0000120196

0000120194

0000120194

0000120197

0000120192

0000120194

0000120192

0000120194

0000120196

0000120192

0000120194

0000120195

0000120198

0000120197

0000120201

0000120200

0000120204

0000120204

0000120206

0000120208

0000120207

0000120206

0000120207

0000120211

0000120212

0000120213

0000120211

0000120211

0000120211

0000120210

0000120211

0000120209

0000120211

0000120209

0000120210

0000120211

0000120212

0000120216

0000120215

0000120217

0000120218

0000120217

0000120215

0000120216

0000120218

0000120217

0000120217

0000120217

0000120217

0000120219

0000120217

0000120218

0000120219

0000120214

0000120215

0000120218

0000120217

0000120216

0000120218

0000120219

0000120220

0000120221

0000120221

0000120221

0000120222

0000120222

0000120225

0000120225

0000120225

0000120225

0000120225

0000120227

0000120226

0000120227

0000120224

0000120226

0000120224

0000120226

0000120227

0000120224

0000120223

0000120223

0000120224

0000120223

0000120221

0000120224

0000120222

0000120218

0000120219

0000120217

0000120217

0000120215

0000120214

0000120214

0000120214

0000120214

0000120213

0000120216

0000120215

0000120215

0000120215

0000120215

0000120214

0000120215

0000120215

0000120216

0000120217

0000120216

0000120215

0000120215

0000120213

0000120211

0000120213

0000120212

0000120211

0000120212

0000120214

0000120218

0000120216

0000120214

0000120214

0000120217

0000120215

0000120216

0000120217

0000120220

0000120219

0000120218

0000120217

0000120218

0000120217

0000120220

0000120219

0000120220

0000120220

0000120218

0000120220

0000120220

0000120219

0000120222

0000120223

000
Download .txt
gitextract_18dfl17d/

├── .gitignore
├── ATMega328  LEDblink/
│   ├── build_atmega328.bat
│   ├── fuse_atmega328_int_1MHz.bat
│   ├── fuse_atmega328_int_8MHz.bat
│   ├── fuse_atmega328_xtal.bat
│   ├── main.c
│   ├── main.elf
│   └── main.hex
├── ATMega328 2015-01-01 USART serial/
│   ├── AVR Baud Rate Calculator.url
│   ├── readme.md
│   ├── tx only/
│   │   ├── README.md
│   │   ├── build_atmega328.bat
│   │   ├── fuse_atmega328_int_1MHz.bat
│   │   ├── main.c
│   │   ├── main.elf
│   │   └── main.hex
│   ├── tx rs set value/
│   │   ├── build.bat
│   │   ├── fuse_atmega328_int_1MHz.bat
│   │   ├── main.c
│   │   ├── main.elf
│   │   └── main.hex
│   ├── tx rx interrupt/
│   │   ├── build.bat
│   │   ├── fuse_atmega328_int_1MHz.bat
│   │   ├── main.c
│   │   ├── main.elf
│   │   └── main.hex
│   └── tx rx polling/
│       ├── build.bat
│       ├── fuse_atmega328_int_1MHz.bat
│       ├── main.c
│       ├── main.elf
│       └── main.hex
├── ATMega328 2016-09-04 SN74LV8154/
│   ├── README.md
│   ├── build_atmega328.bat
│   ├── cleaner/
│   │   ├── build_atmega328.bat
│   │   ├── fuse_atmega328_int_1MHz.bat
│   │   ├── main.c
│   │   ├── main.elf
│   │   ├── main.hex
│   │   └── main_minimal.c
│   ├── demo.py
│   ├── kicad/
│   │   ├── simple-cache.lib
│   │   ├── simple.bak
│   │   ├── simple.kicad_pcb
│   │   ├── simple.pro
│   │   └── simple.sch
│   ├── main.c
│   ├── main.elf
│   └── main.hex
├── ATMega328 2016-09-07 ramp DVM/
│   ├── README.md
│   ├── build.bat
│   ├── demo data/
│   │   ├── analyze.py
│   │   └── capture.txt
│   ├── kicad/
│   │   ├── quick ADC-cache.lib
│   │   ├── quick ADC.bak
│   │   ├── quick ADC.kicad_pcb
│   │   ├── quick ADC.pro
│   │   └── quick ADC.sch
│   ├── main.c
│   ├── main.elf
│   └── main.hex
├── ATMega328 2016-09-15 CVM/
│   ├── README.md
│   ├── analysis/
│   │   ├── captureWarmup.txt
│   │   └── graph.py
│   ├── build.bat
│   ├── demo.py
│   ├── main.c
│   ├── main.elf
│   └── main.hex
├── ATMega328 2017-02-07 ADC serial LM35/
│   ├── AVR Baud Rate Calculator.url
│   ├── README.md
│   ├── build_atmega328.bat
│   ├── fuse_atmega328_int_1MHz.bat
│   ├── main.c
│   ├── main.elf
│   ├── main.hex
│   ├── main_both.c
│   └── main_simple.c
├── ATMega328 2017-02-08 i2c LM75A thermometer/
│   ├── build_atmega328.bat
│   ├── cmd.cmd
│   ├── fuse_atmega328_int_1MHz.bat
│   ├── i2c_master.c
│   ├── i2c_master.h
│   ├── main.c
│   ├── main_01.c
│   ├── readme.md
│   └── serial_m328.c
├── ATMega328 2017-02-12 crystal turnover inspector/
│   ├── build_atmega328.bat
│   ├── data.csv
│   ├── exp01 - 11.0592/
│   │   ├── data.csv
│   │   └── readme.md
│   ├── exp02 - 10.140 smaller/
│   │   ├── data1.csv
│   │   ├── data2.csv
│   │   └── data3.csv
│   ├── exp03 - longrun/
│   │   └── data3.csv
│   ├── exp04 - 10.140 larger/
│   │   └── data.csv
│   ├── exp05 - attiny2313 internal 8mhz/
│   │   └── data.csv
│   ├── exp06 - attiny2313 external xtal/
│   │   ├── data.csv
│   │   └── datalong.csv
│   ├── exp07 - attiny2313 external xtal allday/
│   │   └── data.csv
│   ├── exp07 - attiny2313 external xtal freezer/
│   │   └── data.csv
│   ├── exp08a - mcu 2x18pf ceramic/
│   │   └── data.csv
│   ├── exp08b - mcu 2x18 and 2x68 ceramic/
│   │   └── data.csv
│   ├── exp08c - mcu 2x48 blue/
│   │   └── data.csv
│   ├── exp08d - mcu 2x20 npo black tip/
│   │   └── data.csv
│   ├── exp09a - mcu colpitts/
│   │   └── data.csv
│   ├── exp09a - mcu colpitts all yellow npo/
│   │   └── data.csv
│   ├── exp10 - aj4vd smt oscillator/
│   │   └── data.csv
│   ├── exp11 - aj4vd smt oscillator/
│   │   └── data.csv
│   ├── exp12 - aj4vd smt oscillator/
│   │   └── data.csv
│   ├── exp13 - xtal only heated/
│   │   └── data.csv
│   ├── fuse_atmega328_int_1MHz.bat
│   ├── i2c_master.c
│   ├── i2c_master.h
│   ├── main.c
│   ├── main.elf
│   ├── main.hex
│   ├── plot_both.py
│   ├── plot_both2.py
│   ├── plot_temp.py
│   └── record_both.py
├── ATMega328 2017-03-19 i2c LCD backpack/
│   ├── main.elf
│   ├── main.hex
│   ├── readme.md
│   ├── schematics/
│   │   └── atmega8_lcdpcf8574_sample.sch
│   └── src/
│       ├── build_atmega328.bat
│       ├── fuse_atmega328_int_8MHz.bat
│       ├── i2chw/
│       │   ├── i2cmaster.h
│       │   └── twimaster.c
│       ├── lcdpcf8574/
│       │   ├── lcdpcf8574.c
│       │   └── lcdpcf8574.h
│       ├── main.c
│       ├── main.elf
│       ├── main.hex
│       ├── pcf8574/
│       │   ├── pcf8574.c
│       │   └── pcf8574.h
│       └── uart/
│           ├── uart.c
│           └── uart.h
├── ATMega328 2017-03-19 i2c LCD pressure sensor/
│   ├── notes.txt
│   ├── readme.md
│   ├── schematics/
│   │   └── atmega8_lcdpcf8574_sample.sch
│   ├── src_i2cLCD_01_works/
│   │   ├── build_atmega328.bat
│   │   ├── fuse_atmega328_int_8MHz.bat
│   │   ├── i2c2/
│   │   │   ├── i2c2_master.c
│   │   │   └── i2c2_master.h
│   │   ├── i2chw/
│   │   │   ├── i2cmaster.h
│   │   │   └── twimaster.c
│   │   ├── lcdpcf8574/
│   │   │   ├── lcdpcf8574.c
│   │   │   └── lcdpcf8574.h
│   │   ├── main.c
│   │   ├── main.elf
│   │   ├── main.hex
│   │   ├── pcf8574/
│   │   │   ├── pcf8574.c
│   │   │   └── pcf8574.h
│   │   └── uart/
│   │       ├── uart.c
│   │       └── uart.h
│   ├── src_i2cLCD_02_clean/
│   │   ├── build_atmega328.bat
│   │   ├── calibration/
│   │   │   └── calibrate.py
│   │   ├── fuse_atmega328_int_8MHz.bat
│   │   ├── i2c2/
│   │   │   ├── i2c2_master.c
│   │   │   └── i2c2_master.h
│   │   ├── i2chw/
│   │   │   ├── i2cmaster.h
│   │   │   └── twimaster.c
│   │   ├── lcdpcf8574/
│   │   │   ├── lcdpcf8574.c
│   │   │   └── lcdpcf8574.h
│   │   ├── main.c
│   │   ├── main.elf
│   │   ├── main.hex
│   │   ├── pcf8574/
│   │   │   ├── pcf8574.c
│   │   │   └── pcf8574.h
│   │   └── uart/
│   │       ├── uart.c
│   │       └── uart.h
│   └── src_serial/
│       ├── build_atmega328.bat
│       ├── i2c_master.c
│       ├── i2c_master.h
│       ├── main.c
│       ├── main.elf
│       └── main.hex
├── ATMega328 2017-08-14 action potential generator/
│   ├── build_atmega328.bat
│   ├── fuse_atmega328_int_8MHz.bat
│   ├── ltspice/
│   │   └── idea-1.asc
│   ├── main.c
│   ├── main.elf
│   ├── main.hex
│   └── readme.md
├── ATMega328 2018-02-25 16-bit pwm/
│   └── readme.md
├── ATMega328 2018-02-25 nrf24L01/
│   ├── readme.md
│   └── src/
│       ├── build_rx.bat
│       ├── build_tx.bat
│       ├── fuse_atmega328_int_8MHz.bat
│       ├── kehribar-nrf24L01_plus- Portable nrf24L01+ library with auto acknowledgement and auto retransmission support-.url
│       ├── main.elf
│       ├── main.hex
│       ├── main_rx.c
│       ├── main_tx.c
│       ├── nRF24L01.h
│       ├── nrf24.c
│       ├── nrf24.h
│       └── radioPinFunctions.c
├── ATMega328 2018-04-22 MAX7219 LED matrix/
│   ├── build_atmega328.bat
│   ├── fuse_atmega328_int_8MHz.bat
│   ├── fuse_atmega328_xtal.bat
│   ├── main.c
│   ├── main.elf
│   ├── main.hex
│   ├── main_01_works.c
│   ├── main_02_matrix.c
│   ├── main_03_scott.c
│   └── readme.md
├── ATMega328 2019-06-20 TTL laser controller 2/
│   ├── README.md
│   ├── main.c
│   ├── main.elf
│   ├── main.hex
│   ├── program.bat
│   └── setFuses.bat
├── ATMega328 2019-07-05 USB counter/
│   └── readme.md
├── ATMega328 2019-08-04 max7219 7segment display/
│   ├── compile.bat
│   ├── display-max7219-7seg.c
│   ├── main.c
│   ├── main.elf
│   ├── main.hex
│   ├── program.bat
│   └── readme.md
├── ATMega48 2013-05-14 SHRFP monitor/
│   ├── GUI/
│   │   ├── SH-RFP-monitor.py
│   │   ├── SwhRecorder.py
│   │   ├── SwhRecorder2.py
│   │   ├── SwhRfpDecoder.py
│   │   ├── theory ACTION.py
│   │   ├── theory.py
│   │   ├── ui.py
│   │   ├── ui_plot.py
│   │   └── ui_plot.ui
│   ├── MCU code/
│   │   └── main.c
│   └── readme.md
├── ATMega8 AD9850 DDS receiver/
│   ├── old/
│   │   ├── 03 mega8 DDS/
│   │   │   ├── _ mega8 EXT.cmd
│   │   │   ├── main.c
│   │   │   ├── main.elf
│   │   │   └── main.hex
│   │   ├── 08 multiband qrss dds/
│   │   │   ├── _ mega8 8mhz RC.cmd
│   │   │   ├── main.c
│   │   │   ├── main.elf
│   │   │   └── main.hex
│   │   ├── 09 temp controlled DDS/
│   │   │   ├── _ mega8 1mhz RC.cmd
│   │   │   ├── _ mega8 8mhz RC.cmd
│   │   │   ├── main.c
│   │   │   ├── main.elf
│   │   │   └── main.hex
│   │   └── readme.md
│   └── readme.md
├── ATTiny2313 2015-01-01 USART serial/
│   ├── build_attiny2313.bat
│   ├── fuse_attiny2313_EXT_XTAL.bat
│   ├── fuse_attiny2313_INT_1MHz.bat
│   ├── fuse_attiny2313_INT_8MHz.bat
│   ├── main.c
│   ├── main.elf
│   ├── main.hex
│   └── readme.md
├── ATTiny2313 2016-08-14 clock divider/
│   ├── README.md
│   ├── build_attiny2313.bat
│   ├── fuse_attiny2313_EXT_XTAL.bat
│   ├── main.c
│   ├── main.elf
│   ├── main.hex
│   └── simple/
│       ├── build_attiny2313.bat
│       ├── fuse_attiny2313_EXT_XTAL.bat
│       ├── main.c
│       ├── main.elf
│       └── main.hex
├── ATTiny2313 2017-02-01 PWM/
│   ├── build_attiny2313.bat
│   ├── fuse_attiny2313_INT_1MHz.bat
│   ├── main.c
│   ├── main.elf
│   └── main.hex
├── ATTiny2313 2017-02-02 rotary encoder/
│   ├── build_attiny2313.bat
│   ├── fuse_attiny2313_INT_8MHz.bat
│   ├── main.c
│   ├── main.elf
│   ├── main.hex
│   ├── main_v1_polling.c
│   └── readme.md
├── ATTiny2313 2017-02-03 pin change interrupt/
│   ├── build_attiny2313.bat
│   ├── fuse_attiny2313_INT_8MHz.bat
│   └── main.c
├── ATTiny2313 2017-02-04 QRSS VFO controller/
│   ├── build_attiny2313.bat
│   ├── fuse_attiny2313_INT_8MHz.bat
│   ├── main.c
│   ├── main.elf
│   └── main.hex
├── ATTiny2313 2017-07-22 shutter controller/
│   ├── build_attiny2313.bat
│   ├── fuse_attiny2313_INT_8MHz.bat
│   ├── main.c
│   ├── main.elf
│   └── main.hex
├── ATTiny2313 2017-08-02 stimulus generator/
│   ├── build_attiny2313.bat
│   ├── fuse_attiny2313_EXT_XTAL.bat
│   ├── main.c
│   ├── main.elf
│   └── main.hex
├── ATTiny2313 2018-02-25 ADC/
│   └── readme.md
├── ATTiny2313 2018-02-25 button interrupt/
│   └── readme.md
├── ATTiny2313 LEDblink/
│   ├── build_attiny2313.bat
│   ├── fuse_attiny2313_EXT_XTAL CKOUT.bat
│   ├── fuse_attiny2313_EXT_XTAL.bat
│   ├── fuse_attiny2313_INT_1MHz.bat
│   ├── fuse_attiny2313_INT_8MHz CKOUT.bat
│   ├── fuse_attiny2313_INT_8MHz.bat
│   ├── main.c
│   ├── main.elf
│   └── main.hex
├── ATTiny826 Clock/
│   ├── ATTiny826 Clock and Timer/
│   │   ├── ATTiny826 Clock and Timer.componentinfo.xml
│   │   ├── ATTiny826 Clock and Timer.cproj
│   │   └── main.c
│   └── ATTiny826 Clock and Timer.atsln
├── ATTiny826 LED blink/
│   ├── LedBlink/
│   │   ├── LedBlink/
│   │   │   ├── LedBlink.componentinfo.xml
│   │   │   ├── LedBlink.cproj
│   │   │   └── main.c
│   │   └── LedBlink.atsln
│   └── readme.md
├── ATTiny826 PWM/
│   └── readme.md
├── ATTiny826 Timer 1pps/
│   ├── ATTiny826 Clock and Timer/
│   │   ├── ATTiny826 Clock and Timer.componentinfo.xml
│   │   ├── ATTiny826 Clock and Timer.cproj
│   │   └── main.c
│   └── ATTiny826 Clock and Timer.atsln
├── ATTiny826 counter/
│   ├── ATTiny826 counter/
│   │   ├── ATTiny826 counter.componentinfo.xml
│   │   ├── ATTiny826 counter.cproj
│   │   ├── main.c
│   │   └── serial.h
│   └── ATTiny826 counter.atsln
├── ATTiny826 serial/
│   ├── ATTiny826 serial/
│   │   ├── ATTiny826 serial.componentinfo.xml
│   │   ├── ATTiny826 serial.cproj
│   │   └── main.c
│   └── ATTiny826 serial.atsln
├── ATTiny826 speech/
│   ├── SpeechTest1.atsln
│   ├── SpeechTest1.componentinfo.xml
│   ├── SpeechTest1.cproj
│   ├── main.c
│   └── readme.md
├── ATTiny85 2016-07-24 TTL laser controller/
│   ├── KiCad/
│   │   ├── 16.07.26.laserPulse-cache.lib
│   │   ├── 16.07.26.laserPulse.bak
│   │   ├── 16.07.26.laserPulse.kicad_pcb
│   │   ├── 16.07.26.laserPulse.pro
│   │   └── 16.07.26.laserPulse.sch
│   ├── README.md
│   ├── burn.cmd
│   ├── burn2.bat
│   ├── fuse_attiny85_crystal.cmd
│   ├── main.c
│   ├── main.elf
│   ├── main.hex
│   └── up.py
├── ATTiny85 2016-07-31 frequency generator/
│   ├── README.md
│   ├── burn.cmd
│   └── main.c
├── ATTiny85 2016-12-30 PWM/
│   ├── fuseINT8.bat
│   ├── main.c
│   ├── main_squares_triangles.c
│   ├── program.bat
│   └── readme.md
├── ATTiny85 2017-02-05 ADC/
│   ├── fuseINT8.bat
│   ├── main.c
│   ├── program.bat
│   └── readme.md
├── ATTiny85 2017-08-19 action potential generator/
│   ├── fuseINT8.bat
│   ├── main.c
│   ├── main.elf
│   ├── main.hex
│   ├── program.bat
│   └── readme.md
├── ATTiny85 2017-09-01 PS4 controller auto run auto fire/
│   ├── fuseINT8.bat
│   ├── main.c
│   ├── main.elf
│   ├── main.hex
│   ├── program.bat
│   └── readme.md
├── ATTiny85 LEDblink/
│   ├── fuseINT8.bat
│   ├── main.c
│   ├── main.elf
│   ├── main.hex
│   └── program.bat
├── AVR64DD32/
│   └── readme.md
├── AVR64DD32 7seg multiplex/
│   ├── GccApplication1.atsln
│   ├── GccApplication1.componentinfo.xml
│   ├── GccApplication1.cproj
│   └── main.c
├── AVR64DD32 LEDblink/
│   ├── LEDblink/
│   │   ├── LEDblink.atsln
│   │   ├── LEDblink.componentinfo.xml
│   │   ├── LEDblink.cproj
│   │   └── main.c
│   └── readme.md
├── AVR64DD32 SPI audio/
│   ├── SpiQuickstart.atsln
│   ├── SpiQuickstart.componentinfo.xml
│   ├── SpiQuickstart.cproj
│   └── main.c
├── AVR64DD32 adc/
│   ├── GccApplication1.atsln
│   ├── GccApplication1.componentinfo.xml
│   ├── GccApplication1.cproj
│   └── main.c
├── AVR64DD32 audio music/
│   ├── SpeechTest2.atsln
│   ├── SpeechTest2.componentinfo.xml
│   ├── SpeechTest2.cproj
│   ├── audio.h
│   ├── main.c
│   └── readme.md
├── AVR64DD32 audio speech/
│   ├── SpeechTest2.atsln
│   ├── SpeechTest2.componentinfo.xml
│   ├── SpeechTest2.cproj
│   ├── audio.h
│   ├── main.c
│   └── readme.md
├── AVR64DD32 comparator/
│   ├── AVR64DD32 serial.atsln
│   ├── AVR64DD32 serial.componentinfo.xml
│   ├── AVR64DD32 serial.cproj
│   └── main.c
├── AVR64DD32 counter/
│   ├── AVR64DD32 serial.atsln
│   ├── AVR64DD32 serial.componentinfo.xml
│   ├── AVR64DD32 serial.cproj
│   ├── Serial.h
│   └── main.c
├── AVR64DD32 serial/
│   ├── AVR64DD32 serial.atsln
│   ├── AVR64DD32 serial.componentinfo.xml
│   ├── AVR64DD32 serial.cproj
│   └── main.c
├── AVR64DD32 talking counter/
│   ├── AVR64DD32 serial.atsln
│   ├── AVR64DD32 serial.componentinfo.xml
│   ├── AVR64DD32 serial.cproj
│   ├── NumberSpeaker.h
│   ├── NumberSpeakerAudio.h
│   ├── Serial.h
│   └── main.c
├── Analog action potential generator/
│   ├── data/
│   │   └── analyze.py
│   └── ltspice/
│       ├── circuit.asc
│       ├── circuit.log
│       ├── circuit.op.raw
│       └── circuit.raw
├── Arduino/
│   └── readme.md
├── Arduino ADC/
│   └── Arduino ADC.ino
├── Arduino ADC MCP3201/
│   └── Arduino ADC MCP3201.ino
├── Arduino ADS1115/
│   └── Arduino ADS1115.ino
├── Arduino BMP280 pressure sensor/
│   ├── bmp280/
│   │   ├── amazon.txt
│   │   └── bmp280.ino
│   └── readme.md
├── Arduino HX710B pressure sensor/
│   ├── hx710b/
│   │   ├── .theia/
│   │   │   └── launch.json
│   │   └── hx710b.ino
│   └── readme.md
├── Arduino LED blink/
│   └── led-blink.ino
├── Arduino LM75A/
│   └── Arduino LM75A.ino
├── Arduino PWM/
│   └── readme.md
├── Arduino SI5351 DDS/
│   └── dds/
│       └── dds/
│           ├── dds.ino
│           ├── si5351.cpp
│           └── si5351.h
├── Arduino SPI audio/
│   ├── readme.md
│   └── test1/
│       └── test1.ino
├── Arduino speech/
│   ├── readme.md
│   └── test1/
│       ├── speech.h
│       └── test1.ino
├── BusPirate/
│   ├── demo.py
│   └── readme.md
├── BusPirate 2017-02-04 i2c ms5661 pressure/
│   ├── busPirate_ms5661.py
│   ├── buspirate.py
│   ├── readme.md
│   ├── scratch_record_i2c_pressure.py
│   └── scratch_record_i2c_pressure_plot.py
├── BusPirate 2017-02-04 i2c temperature/
│   ├── busPirate_LM75A.py
│   ├── file logging/
│   │   ├── data.csv
│   │   ├── plot.py
│   │   └── record.py
│   └── readme.md
├── BusPirate 2017-03-11 crystal oven/
│   ├── busPirate_LM75A.py
│   ├── data.csv
│   └── plot.py
├── ESP8266/
│   └── readme.md
├── FT232H SPI ADC/
│   ├── UsbAdc/
│   │   ├── FTD2XX_NET/
│   │   │   ├── CommunicatorBase.cs
│   │   │   ├── FTD2XX_NET.cs
│   │   │   ├── SerialCommunicator.cs
│   │   │   ├── SpiCommunicator.cs
│   │   │   ├── TwiCommunicator.cs
│   │   │   └── readme.md
│   │   ├── Form1.Designer.cs
│   │   ├── Form1.cs
│   │   ├── Form1.resx
│   │   ├── Program.cs
│   │   ├── UsbAdc.csproj
│   │   ├── UsbAdc.csproj.user
│   │   ├── UsbAdc.sln
│   │   └── obj/
│   │       ├── UsbAdc.csproj.nuget.dgspec.json
│   │       ├── UsbAdc.csproj.nuget.g.props
│   │       ├── UsbAdc.csproj.nuget.g.targets
│   │       ├── project.assets.json
│   │       └── project.nuget.cache
│   └── readme.md
├── FTDI 2017-04-29 bitbang max7219 7seg/
│   ├── FT232H-spi7seg.cs
│   └── readme.md
├── FTDI 2018-05-30 bit bang/
│   ├── 00-serial.cs
│   ├── 01-serial.cs
│   ├── 02-state-LEDs.cs
│   ├── 03-state-LEDblink.cs
│   ├── 04-state-send.cs
│   ├── 05-stress-test.cs
│   ├── 06-bit-bang-spi.cs
│   ├── 07-AD9850-single-frequency.cs
│   ├── 08-AD9850-sweep.cs.cs
│   └── readme.md
├── FTDI 2018-06-03 ftdiDDS/
│   ├── binary/
│   │   └── demos/
│   │       ├── demo_help.bat
│   │       ├── demo_hz_33222111.bat
│   │       ├── demo_list.bat
│   │       ├── demo_mhz_10.bat
│   │       ├── demo_mhz_21.987654.bat
│   │       ├── demo_none.bat
│   │       └── demo_sweep.bat
│   ├── readme.md
│   └── source/
│       ├── FTDI-video-demo/
│       │   ├── App.config
│       │   ├── FTD2XX_NET.XML
│       │   ├── FTDI-video-demo.csproj
│       │   ├── Program.cs
│       │   ├── Properties/
│       │   │   └── AssemblyInfo.cs
│       │   └── packages.config
│       ├── FTDI-video-demo.sln
│       └── packages/
│           └── FTD2XX.Net.1.0.14/
│               ├── FTD2XX.Net.1.0.14.nupkg
│               └── content/
│                   └── FTD2XX_NET.XML
├── LICENSE
├── NodeMCU-BMP8266/
│   ├── NodeMCU-BMP8266.ino
│   └── readme.md
├── NodeMCU-weather-station/
│   ├── NodeMCU-weather-station.ino
│   └── readme.md
├── QRSS TX - clock tx/
│   ├── PCB/
│   │   ├── fp-info-cache
│   │   ├── qrss-clock-tx-cache.lib
│   │   ├── qrss-clock-tx.bak
│   │   ├── qrss-clock-tx.kicad_pcb
│   │   ├── qrss-clock-tx.kicad_pcb-bak
│   │   ├── qrss-clock-tx.net
│   │   ├── qrss-clock-tx.pro
│   │   └── qrss-clock-tx.sch
│   ├── README.md
│   ├── ideas/
│   │   └── readme.md
│   └── ppv-to-power-calculator.xlsx
├── README.md
├── functions/
│   ├── delays.md
│   └── readme.md
├── tips/
│   ├── 2016-08-14 CKOUT noise/
│   │   └── README.md
│   └── 2017-02-04 thermistor calculations/
│       └── demo.py
└── uBlox Neo-6M/
    └── readme.md
Download .txt
SYMBOL INDEX (1038 symbols across 135 files)

FILE: ATMega328  LEDblink/main.c
  function main (line 5) | int main(void){

FILE: ATMega328 2015-01-01 USART serial/tx only/main.c
  function serial_init (line 8) | void serial_init(){
  function serial_send (line 15) | void serial_send(unsigned char data){
  function serial_break (line 21) | void serial_break(){
  function serial_comma (line 25) | void serial_comma(){
  function serial_number (line 30) | void serial_number(long val){
  function main (line 41) | int main(void){

FILE: ATMega328 2015-01-01 USART serial/tx rs set value/main.c
  function serial_init (line 16) | void serial_init(){
  function serial_send (line 25) | void serial_send(unsigned char data){
  function serial_break (line 31) | void serial_break(){
  function serial_long (line 36) | void serial_long(long val){
  function serial_int (line 46) | void serial_int(int val){
  function serial_string (line 56) | void serial_string(const char* s){
  function ISR (line 63) | ISR(USART_RX_vect){
  function input_add (line 77) | void input_add(char new){
  function input_leftShift (line 86) | void input_leftShift(){
  function input_reset (line 105) | void input_reset(){
  function input_process (line 115) | void input_process(){
  function main (line 127) | int main(void){

FILE: ATMega328 2015-01-01 USART serial/tx rx interrupt/main.c
  function serial_init (line 9) | void serial_init(){
  function serial_send (line 18) | void serial_send(unsigned char data){
  function ISR (line 26) | ISR(USART_RX_vect){
  function main (line 37) | int main(void){

FILE: ATMega328 2015-01-01 USART serial/tx rx polling/main.c
  function serial_init (line 8) | void serial_init(){
  function serial_send (line 16) | void serial_send(unsigned char data){
  function USARTReadChar (line 22) | char USARTReadChar()
  function main (line 29) | int main(void){

FILE: ATMega328 2016-09-04 SN74LV8154/cleaner/main.c
  function serial_init (line 14) | void serial_init(){
  function serial_send (line 21) | void serial_send(unsigned char data){
  function serial_string (line 27) | void serial_string(const char* s){
  function serial_break (line 33) | void serial_break(){
  function serial_comma (line 37) | void serial_comma(){
  function serial_number (line 42) | void serial_number(unsigned long int val){ // send a number as ASCII text
  function serial_binary (line 51) | void serial_binary(int val){ // send a number as ASCII text
  function counter_reg (line 59) | int counter_reg(char reg){
  function counter_getCount (line 90) | unsigned long int counter_getCount(){
  function counter_getCount_safe (line 99) | unsigned long int counter_getCount_safe(){
  function serial_test (line 109) | void serial_test(){
  function main (line 118) | int main(void){

FILE: ATMega328 2016-09-04 SN74LV8154/cleaner/main_minimal.c
  function serial_init (line 14) | void serial_init(){
  function serial_send (line 21) | void serial_send(unsigned char data){
  function serial_string (line 27) | void serial_string(const char* s){
  function serial_break (line 33) | void serial_break(){
  function serial_comma (line 37) | void serial_comma(){
  function serial_number (line 42) | void serial_number(unsigned long int val){ // send a number as ASCII text
  function serial_binary (line 51) | void serial_binary(int val){ // send a number as ASCII text
  function counter_reg (line 59) | int counter_reg(char reg){
  function counter_getCount (line 90) | unsigned long int counter_getCount(){
  function counter_getCount_safe (line 99) | unsigned long int counter_getCount_safe(){
  function serial_test (line 109) | void serial_test(){
  function main (line 118) | int main(void){

FILE: ATMega328 2016-09-04 SN74LV8154/main.c
  function serial_init (line 14) | void serial_init(){
  function serial_send (line 21) | void serial_send(unsigned char data){
  function serial_string (line 27) | void serial_string(const char* s){
  function serial_break (line 33) | void serial_break(){
  function serial_comma (line 37) | void serial_comma(){
  function serial_number (line 42) | void serial_number(unsigned long int val){ // send a number as ASCII text
  function serial_binary (line 51) | void serial_binary(int val){ // send a number as ASCII text
  function counter_reg (line 59) | int counter_reg(char reg){
  function counter_getCount (line 90) | unsigned long int counter_getCount(){
  function counter_getCount_safe (line 99) | unsigned long int counter_getCount_safe(){
  function serial_test (line 109) | void serial_test(){
  function main (line 118) | int main(void){

FILE: ATMega328 2016-09-07 ramp DVM/main.c
  function serial_init (line 14) | void serial_init(){
  function serial_send (line 21) | void serial_send(unsigned char data){
  function serial_string (line 27) | void serial_string(const char* s){
  function serial_break (line 33) | void serial_break(){
  function serial_comma (line 37) | void serial_comma(){
  function serial_number (line 42) | void serial_number(unsigned long int val){ // send a number as ASCII text
  function serial_binary (line 51) | void serial_binary(int val){ // send a number as ASCII text
  function serial_test (line 59) | void serial_test(){
  function main (line 68) | int main(void){

FILE: ATMega328 2016-09-15 CVM/analysis/graph.py
  function getData (line 4) | def getData(fname='captureWarmup.txt'):

FILE: ATMega328 2016-09-15 CVM/main.c
  function serial_init (line 9) | void serial_init(){
  function serial_send (line 16) | void serial_send(unsigned char data){
  function serial_string (line 22) | void serial_string(const char* s){
  function serial_break (line 28) | void serial_break(){
  function serial_comma (line 32) | void serial_comma(){
  function serial_number (line 37) | void serial_number(uint32_t val){ // send a number as ASCII text
  function serial_binary (line 46) | void serial_binary(int val){ // send a number as ASCII text
  function serial_test (line 54) | void serial_test(){
  function read_capture (line 90) | void read_capture(){
  function saved_letter (line 97) | char saved_letter(){
  function saved_number (line 126) | char saved_number(){
  function capture_letter (line 153) | uint8_t capture_letter(char letter){
  function capture_full (line 176) | void capture_full(){
  function main (line 202) | int main(void){

FILE: ATMega328 2017-02-07 ADC serial LM35/main.c
  function serial_init (line 23) | void serial_init(){
  function serial_send (line 30) | void serial_send(unsigned char data){
  function serial_break (line 36) | void serial_break(){
  function serial_comma (line 41) | void serial_comma(){
  function serial_number (line 46) | void serial_number(long val){
  function read_ADC (line 56) | int read_ADC(){
  function read_ADC10 (line 64) | int read_ADC10(){
  function init_ADC (line 74) | void init_ADC(){
  function main (line 84) | int main(void){

FILE: ATMega328 2017-02-07 ADC serial LM35/main_both.c
  function serial_init (line 23) | void serial_init(){
  function serial_send (line 30) | void serial_send(unsigned char data){
  function serial_break (line 36) | void serial_break(){
  function serial_comma (line 41) | void serial_comma(){
  function serial_number (line 46) | void serial_number(long val){
  function read_ADC (line 56) | int read_ADC(){
  function read_ADC10 (line 64) | int read_ADC10(){
  function init_ADC (line 74) | void init_ADC(){
  function ISR (line 83) | ISR(ADC_vect){}
  function ADC_read_quiet (line 85) | int ADC_read_quiet(){
  function ADC_read_quiet10 (line 95) | int ADC_read_quiet10(){
  function ADC_read (line 104) | int ADC_read(){
  function ADC_read10 (line 111) | int ADC_read10(){
  function main (line 120) | int main(void){

FILE: ATMega328 2017-02-07 ADC serial LM35/main_simple.c
  function serial_init (line 23) | void serial_init(){
  function serial_send (line 30) | void serial_send(unsigned char data){
  function serial_break (line 36) | void serial_break(){
  function serial_comma (line 41) | void serial_comma(){
  function serial_number (line 46) | void serial_number(long val){
  function read_ADC (line 56) | int read_ADC(){
  function read_ADC10 (line 64) | int read_ADC10(){
  function init_ADC (line 74) | void init_ADC(){
  function main (line 84) | int main(void){

FILE: ATMega328 2017-02-08 i2c LM75A thermometer/i2c_master.c
  function i2c_init (line 14) | void i2c_init(void)
  function i2c_start (line 19) | uint8_t i2c_start(uint8_t address)
  function i2c_write (line 45) | uint8_t i2c_write(uint8_t data)
  function i2c_read_ack (line 59) | uint8_t i2c_read_ack(void)
  function i2c_read_nack (line 70) | uint8_t i2c_read_nack(void)
  function i2c_transmit (line 81) | uint8_t i2c_transmit(uint8_t address, uint8_t* data, uint16_t length)
  function i2c_receive (line 95) | uint8_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length)
  function i2c_writeReg (line 110) | uint8_t i2c_writeReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, ui...
  function i2c_readReg (line 126) | uint8_t i2c_readReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uin...
  function i2c_stop (line 145) | void i2c_stop(void)

FILE: ATMega328 2017-02-08 i2c LM75A thermometer/main.c
  function readTemp (line 7) | int readTemp(){
  function sendTemp (line 18) | int sendTemp(){
  function main (line 30) | int main(void){

FILE: ATMega328 2017-02-08 i2c LM75A thermometer/main_01.c
  function TWIInit (line 7) | void TWIInit(void)
  function TWIStart (line 16) | void TWIStart(void)
  function TWIStop (line 22) | void TWIStop(void)
  function TWIWrite (line 27) | void TWIWrite(uint8_t u8data)
  function TWIReadACK (line 35) | uint8_t TWIReadACK(void)
  function TWIReadNACK (line 42) | uint8_t TWIReadNACK(void)
  function TWIGetStatus (line 49) | uint8_t TWIGetStatus(void)
  function test (line 57) | uint8_t test()
  function main (line 89) | int main(void){

FILE: ATMega328 2017-02-08 i2c LM75A thermometer/serial_m328.c
  function serial_init (line 8) | void serial_init(){
  function serial_send (line 15) | void serial_send(unsigned char data){
  function serial_break (line 21) | void serial_break(){
  function serial_comma (line 26) | void serial_comma(){
  function serial_number3 (line 31) | void serial_number3(int val){
  function serial_number (line 41) | void serial_number(long val){

FILE: ATMega328 2017-02-12 crystal turnover inspector/i2c_master.c
  function i2c_init (line 14) | void i2c_init(void)
  function i2c_start (line 19) | uint8_t i2c_start(uint8_t address)
  function i2c_write (line 45) | uint8_t i2c_write(uint8_t data)
  function i2c_read_ack (line 59) | uint8_t i2c_read_ack(void)
  function i2c_read_nack (line 70) | uint8_t i2c_read_nack(void)
  function i2c_transmit (line 81) | uint8_t i2c_transmit(uint8_t address, uint8_t* data, uint16_t length)
  function i2c_receive (line 95) | uint8_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length)
  function i2c_writeReg (line 110) | uint8_t i2c_writeReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, ui...
  function i2c_readReg (line 126) | uint8_t i2c_readReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uin...
  function i2c_stop (line 145) | void i2c_stop(void)

FILE: ATMega328 2017-02-12 crystal turnover inspector/main.c
  function readTemp (line 13) | int readTemp(){
  function sendTemp (line 25) | int sendTemp(){
  function serial_break (line 37) | void serial_break(){
  function serial_init (line 42) | void serial_init(){
  function serial_number3 (line 51) | void serial_number3(int val){
  function serial_send (line 61) | void serial_send(unsigned char data){
  function ISR (line 68) | ISR(USART_RX_vect){
  function main (line 78) | int main(void){

FILE: ATMega328 2017-02-12 crystal turnover inspector/plot_both.py
  function smooth (line 9) | def smooth(data,sigma):
  function fig_dual (line 19) | def fig_dual(times,temp,freq):
  function fig_2d (line 53) | def fig_2d(times,temp,freq):
  function doit (line 71) | def doit(fnames=["data.csv"]):

FILE: ATMega328 2017-02-12 crystal turnover inspector/plot_both2.py
  function smooth (line 8) | def smooth(data,sigma):
  function loadTempFreq (line 18) | def loadTempFreq(fname="data.csv",smoothTemp=60,smoothFreq=60,startAt=0):
  function plot_add_circle (line 48) | def plot_add_circle(temps,freqs):
  function figure_derivative (line 53) | def figure_derivative():
  function figure_circle (line 72) | def figure_circle(experimentPath='./'):
  function figure_linear (line 91) | def figure_linear(experimentPath='./'):

FILE: ATMega328 2017-02-12 crystal turnover inspector/plot_temp.py
  function smooth (line 6) | def smooth(data,sigma=60):

FILE: ATMega328 2017-02-12 crystal turnover inspector/record_both.py
  function listPorts (line 8) | def listPorts():
  function getFreq (line 12) | def getFreq(ser):
  function getTemp (line 22) | def getTemp(ser):
  function logLine (line 33) | def logLine(line,fname="data.csv",firstLine=False):

FILE: ATMega328 2017-03-19 i2c LCD backpack/src/i2chw/twimaster.c
  function i2c_init (line 27) | void i2c_init(void)
  function i2c_start (line 41) | unsigned char i2c_start(unsigned char address)
  function i2c_start_wait (line 77) | void i2c_start_wait(unsigned char address)
  function i2c_rep_start (line 128) | unsigned char i2c_rep_start(unsigned char address)
  function i2c_stop (line 138) | void i2c_stop(void)
  function i2c_write (line 156) | unsigned char i2c_write( unsigned char data )
  function i2c_readAck (line 180) | unsigned char i2c_readAck(void)
  function i2c_readNak (line 195) | unsigned char i2c_readNak(void)

FILE: ATMega328 2017-03-19 i2c LCD backpack/src/lcdpcf8574/lcdpcf8574.c
  function _delayFourCycles (line 43) | static inline void _delayFourCycles(unsigned int __count)
  function toggle_e (line 65) | static void toggle_e(void)
  function lcd_write (line 80) | static void lcd_write(uint8_t data,uint8_t rs)
  function lcd_read (line 128) | static uint8_t lcd_read(uint8_t rs)
  function lcd_waitbusy (line 158) | static uint8_t lcd_waitbusy(void)
  function lcd_newline (line 179) | static inline void lcd_newline(uint8_t pos)
  function lcd_command (line 217) | void lcd_command(uint8_t cmd)
  function lcd_data (line 229) | void lcd_data(uint8_t data)
  function lcd_gotoxy (line 243) | void lcd_gotoxy(uint8_t x, uint8_t y)
  function lcd_getxy (line 270) | int lcd_getxy(void)
  function lcd_clrscr (line 279) | void lcd_clrscr(void)
  function lcd_led (line 288) | void lcd_led(uint8_t onoff)
  function lcd_home (line 301) | void lcd_home(void)
  function lcd_putc (line 312) | void lcd_putc(char c)
  function lcd_puts (line 358) | void lcd_puts(const char *s)
  function lcd_puts_p (line 375) | void lcd_puts_p(const char *progmem_s)
  function lcd_init (line 395) | void lcd_init(uint8_t dispAttr)

FILE: ATMega328 2017-03-19 i2c LCD backpack/src/main.c
  function main (line 22) | int main(void)

FILE: ATMega328 2017-03-19 i2c LCD backpack/src/pcf8574/pcf8574.c
  function pcf8574_init (line 23) | void pcf8574_init() {
  function pcf8574_getoutput (line 40) | int8_t pcf8574_getoutput(uint8_t deviceid) {
  function pcf8574_getoutputpin (line 51) | int8_t pcf8574_getoutputpin(uint8_t deviceid, uint8_t pin) {
  function pcf8574_setoutput (line 63) | int8_t pcf8574_setoutput(uint8_t deviceid, uint8_t data) {
  function pcf8574_setoutputpins (line 77) | int8_t pcf8574_setoutputpins(uint8_t deviceid, uint8_t pinstart, uint8_t...
  function pcf8574_setoutputpin (line 105) | int8_t pcf8574_setoutputpin(uint8_t deviceid, uint8_t pin, uint8_t data) {
  function pcf8574_setoutputpinhigh (line 123) | int8_t pcf8574_setoutputpinhigh(uint8_t deviceid, uint8_t pin) {
  function pcf8574_setoutputpinlow (line 130) | int8_t pcf8574_setoutputpinlow(uint8_t deviceid, uint8_t pin) {
  function pcf8574_getinput (line 138) | int8_t pcf8574_getinput(uint8_t deviceid) {
  function pcf8574_getinputpin (line 151) | int8_t pcf8574_getinputpin(uint8_t deviceid, uint8_t pin) {

FILE: ATMega328 2017-03-19 i2c LCD backpack/src/uart/uart.c
  function SIGNAL (line 252) | SIGNAL(UART0_RECEIVE_INTERRUPT)
  function SIGNAL (line 295) | SIGNAL(UART0_TRANSMIT_INTERRUPT)
  function uart_init (line 323) | void uart_init(unsigned int baudrate)
  function uart_getc (line 401) | unsigned int uart_getc(void)
  function uart_putc (line 429) | void uart_putc(unsigned char data)
  function uart_puts (line 455) | void uart_puts(const char *s )
  function uart_puts_p (line 469) | void uart_puts_p(const char *progmem_s )
  function SIGNAL (line 484) | SIGNAL(UART1_RECEIVE_INTERRUPT)
  function SIGNAL (line 519) | SIGNAL(UART1_TRANSMIT_INTERRUPT)
  function uart1_init (line 547) | void uart1_init(unsigned int baudrate)
  function uart1_getc (line 582) | unsigned int uart1_getc(void)
  function uart1_putc (line 610) | void uart1_putc(unsigned char data)
  function uart1_puts (line 636) | void uart1_puts(const char *s )
  function uart1_puts_p (line 650) | void uart1_puts_p(const char *progmem_s )

FILE: ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_01_works/i2c2/i2c2_master.c
  function i2c2_init (line 14) | void i2c2_init(void)
  function i2c2_start (line 19) | uint8_t i2c2_start(uint8_t address)
  function i2c2_write (line 45) | uint8_t i2c2_write(uint8_t data)
  function i2c2_read_ack (line 59) | uint8_t i2c2_read_ack(void)
  function i2c2_read_nack (line 70) | uint8_t i2c2_read_nack(void)
  function i2c2_transmit (line 81) | uint8_t i2c2_transmit(uint8_t address, uint8_t* data, uint16_t length)
  function i2c2_receive (line 95) | uint8_t i2c2_receive(uint8_t address, uint8_t* data, uint16_t length)
  function i2c2_writeReg (line 110) | uint8_t i2c2_writeReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, u...
  function i2c2_readReg (line 126) | uint8_t i2c2_readReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, ui...
  function i2c2_stop (line 145) | void i2c2_stop(void)

FILE: ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_01_works/i2chw/twimaster.c
  function i2c_init (line 27) | void i2c_init(void)
  function i2c_start (line 41) | unsigned char i2c_start(unsigned char address)
  function i2c_start_wait (line 77) | void i2c_start_wait(unsigned char address)
  function i2c_rep_start (line 128) | unsigned char i2c_rep_start(unsigned char address)
  function i2c_stop (line 138) | void i2c_stop(void)
  function i2c_write (line 156) | unsigned char i2c_write( unsigned char data )
  function i2c_readAck (line 180) | unsigned char i2c_readAck(void)
  function i2c_readNak (line 195) | unsigned char i2c_readNak(void)

FILE: ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_01_works/lcdpcf8574/lcdpcf8574.c
  function _delayFourCycles (line 43) | static inline void _delayFourCycles(unsigned int __count)
  function toggle_e (line 65) | static void toggle_e(void)
  function lcd_write (line 80) | static void lcd_write(uint8_t data,uint8_t rs)
  function lcd_read (line 128) | static uint8_t lcd_read(uint8_t rs)
  function lcd_waitbusy (line 158) | static uint8_t lcd_waitbusy(void)
  function lcd_newline (line 179) | static inline void lcd_newline(uint8_t pos)
  function lcd_command (line 217) | void lcd_command(uint8_t cmd)
  function lcd_data (line 229) | void lcd_data(uint8_t data)
  function lcd_gotoxy (line 243) | void lcd_gotoxy(uint8_t x, uint8_t y)
  function lcd_getxy (line 270) | int lcd_getxy(void)
  function lcd_clrscr (line 279) | void lcd_clrscr(void)
  function lcd_led (line 288) | void lcd_led(uint8_t onoff)
  function lcd_home (line 301) | void lcd_home(void)
  function lcd_putc (line 312) | void lcd_putc(char c)
  function lcd_puts (line 358) | void lcd_puts(const char *s)
  function lcd_puts_p (line 375) | void lcd_puts_p(const char *progmem_s)
  function lcd_init (line 395) | void lcd_init(uint8_t dispAttr)

FILE: ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_01_works/main.c
  function sendNum (line 11) | void sendNum(unsigned long int val){
  function read (line 24) | int read(){
  function main (line 74) | int main(void)

FILE: ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_01_works/pcf8574/pcf8574.c
  function pcf8574_init (line 23) | void pcf8574_init() {
  function pcf8574_getoutput (line 40) | int8_t pcf8574_getoutput(uint8_t deviceid) {
  function pcf8574_getoutputpin (line 51) | int8_t pcf8574_getoutputpin(uint8_t deviceid, uint8_t pin) {
  function pcf8574_setoutput (line 63) | int8_t pcf8574_setoutput(uint8_t deviceid, uint8_t data) {
  function pcf8574_setoutputpins (line 77) | int8_t pcf8574_setoutputpins(uint8_t deviceid, uint8_t pinstart, uint8_t...
  function pcf8574_setoutputpin (line 105) | int8_t pcf8574_setoutputpin(uint8_t deviceid, uint8_t pin, uint8_t data) {
  function pcf8574_setoutputpinhigh (line 123) | int8_t pcf8574_setoutputpinhigh(uint8_t deviceid, uint8_t pin) {
  function pcf8574_setoutputpinlow (line 130) | int8_t pcf8574_setoutputpinlow(uint8_t deviceid, uint8_t pin) {
  function pcf8574_getinput (line 138) | int8_t pcf8574_getinput(uint8_t deviceid) {
  function pcf8574_getinputpin (line 151) | int8_t pcf8574_getinputpin(uint8_t deviceid, uint8_t pin) {

FILE: ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_01_works/uart/uart.c
  function SIGNAL (line 252) | SIGNAL(UART0_RECEIVE_INTERRUPT)
  function SIGNAL (line 295) | SIGNAL(UART0_TRANSMIT_INTERRUPT)
  function uart_init (line 323) | void uart_init(unsigned int baudrate)
  function uart_getc (line 401) | unsigned int uart_getc(void)
  function uart_putc (line 429) | void uart_putc(unsigned char data)
  function uart_puts (line 455) | void uart_puts(const char *s )
  function uart_puts_p (line 469) | void uart_puts_p(const char *progmem_s )
  function SIGNAL (line 484) | SIGNAL(UART1_RECEIVE_INTERRUPT)
  function SIGNAL (line 519) | SIGNAL(UART1_TRANSMIT_INTERRUPT)
  function uart1_init (line 547) | void uart1_init(unsigned int baudrate)
  function uart1_getc (line 582) | unsigned int uart1_getc(void)
  function uart1_putc (line 610) | void uart1_putc(unsigned char data)
  function uart1_puts (line 636) | void uart1_puts(const char *s )
  function uart1_puts_p (line 650) | void uart1_puts_p(const char *progmem_s )

FILE: ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_02_clean/i2c2/i2c2_master.c
  function i2c2_init (line 14) | void i2c2_init(void)
  function i2c2_start (line 19) | uint8_t i2c2_start(uint8_t address)
  function i2c2_write (line 45) | uint8_t i2c2_write(uint8_t data)
  function i2c2_read_ack (line 59) | uint8_t i2c2_read_ack(void)
  function i2c2_read_nack (line 70) | uint8_t i2c2_read_nack(void)
  function i2c2_transmit (line 81) | uint8_t i2c2_transmit(uint8_t address, uint8_t* data, uint16_t length)
  function i2c2_receive (line 95) | uint8_t i2c2_receive(uint8_t address, uint8_t* data, uint16_t length)
  function i2c2_writeReg (line 110) | uint8_t i2c2_writeReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, u...
  function i2c2_readReg (line 126) | uint8_t i2c2_readReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, ui...
  function i2c2_stop (line 145) | void i2c2_stop(void)

FILE: ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_02_clean/i2chw/twimaster.c
  function i2c_init (line 27) | void i2c_init(void)
  function i2c_start (line 41) | unsigned char i2c_start(unsigned char address)
  function i2c_start_wait (line 77) | void i2c_start_wait(unsigned char address)
  function i2c_rep_start (line 128) | unsigned char i2c_rep_start(unsigned char address)
  function i2c_stop (line 138) | void i2c_stop(void)
  function i2c_write (line 156) | unsigned char i2c_write( unsigned char data )
  function i2c_readAck (line 180) | unsigned char i2c_readAck(void)
  function i2c_readNak (line 195) | unsigned char i2c_readNak(void)

FILE: ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_02_clean/lcdpcf8574/lcdpcf8574.c
  function _delayFourCycles (line 43) | static inline void _delayFourCycles(unsigned int __count)
  function toggle_e (line 65) | static void toggle_e(void)
  function lcd_write (line 80) | static void lcd_write(uint8_t data,uint8_t rs)
  function lcd_read (line 128) | static uint8_t lcd_read(uint8_t rs)
  function lcd_waitbusy (line 158) | static uint8_t lcd_waitbusy(void)
  function lcd_newline (line 179) | static inline void lcd_newline(uint8_t pos)
  function lcd_command (line 217) | void lcd_command(uint8_t cmd)
  function lcd_data (line 229) | void lcd_data(uint8_t data)
  function lcd_gotoxy (line 243) | void lcd_gotoxy(uint8_t x, uint8_t y)
  function lcd_getxy (line 270) | int lcd_getxy(void)
  function lcd_clrscr (line 279) | void lcd_clrscr(void)
  function lcd_led (line 288) | void lcd_led(uint8_t onoff)
  function lcd_home (line 301) | void lcd_home(void)
  function lcd_putc (line 312) | void lcd_putc(char c)
  function lcd_puts (line 358) | void lcd_puts(const char *s)
  function lcd_puts_p (line 375) | void lcd_puts_p(const char *progmem_s)
  function lcd_init (line 395) | void lcd_init(uint8_t dispAttr)

FILE: ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_02_clean/main.c
  function sendInt2 (line 10) | void sendInt2(unsigned int val, int padding){
  function sendInt3 (line 23) | void sendInt3(unsigned int val, int padding){
  function sendInt (line 36) | void sendInt(unsigned int val){
  function sendNum (line 46) | void sendNum(unsigned long int val){
  function getProg (line 60) | void getProg(){
  function pressure_baseline (line 79) | void pressure_baseline(){
  function read (line 85) | int read(){
  function showProg (line 121) | void showProg(){
  function showRaw (line 136) | void showRaw(){
  function showPressure (line 146) | void showPressure(){
  function showReal (line 162) | void showReal(){
  function main (line 210) | int main(void)

FILE: ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_02_clean/pcf8574/pcf8574.c
  function pcf8574_init (line 23) | void pcf8574_init() {
  function pcf8574_getoutput (line 40) | int8_t pcf8574_getoutput(uint8_t deviceid) {
  function pcf8574_getoutputpin (line 51) | int8_t pcf8574_getoutputpin(uint8_t deviceid, uint8_t pin) {
  function pcf8574_setoutput (line 63) | int8_t pcf8574_setoutput(uint8_t deviceid, uint8_t data) {
  function pcf8574_setoutputpins (line 77) | int8_t pcf8574_setoutputpins(uint8_t deviceid, uint8_t pinstart, uint8_t...
  function pcf8574_setoutputpin (line 105) | int8_t pcf8574_setoutputpin(uint8_t deviceid, uint8_t pin, uint8_t data) {
  function pcf8574_setoutputpinhigh (line 123) | int8_t pcf8574_setoutputpinhigh(uint8_t deviceid, uint8_t pin) {
  function pcf8574_setoutputpinlow (line 130) | int8_t pcf8574_setoutputpinlow(uint8_t deviceid, uint8_t pin) {
  function pcf8574_getinput (line 138) | int8_t pcf8574_getinput(uint8_t deviceid) {
  function pcf8574_getinputpin (line 151) | int8_t pcf8574_getinputpin(uint8_t deviceid, uint8_t pin) {

FILE: ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_02_clean/uart/uart.c
  function SIGNAL (line 252) | SIGNAL(UART0_RECEIVE_INTERRUPT)
  function SIGNAL (line 295) | SIGNAL(UART0_TRANSMIT_INTERRUPT)
  function uart_init (line 323) | void uart_init(unsigned int baudrate)
  function uart_getc (line 401) | unsigned int uart_getc(void)
  function uart_putc (line 429) | void uart_putc(unsigned char data)
  function uart_puts (line 455) | void uart_puts(const char *s )
  function uart_puts_p (line 469) | void uart_puts_p(const char *progmem_s )
  function SIGNAL (line 484) | SIGNAL(UART1_RECEIVE_INTERRUPT)
  function SIGNAL (line 519) | SIGNAL(UART1_TRANSMIT_INTERRUPT)
  function uart1_init (line 547) | void uart1_init(unsigned int baudrate)
  function uart1_getc (line 582) | unsigned int uart1_getc(void)
  function uart1_putc (line 610) | void uart1_putc(unsigned char data)
  function uart1_puts (line 636) | void uart1_puts(const char *s )
  function uart1_puts_p (line 650) | void uart1_puts_p(const char *progmem_s )

FILE: ATMega328 2017-03-19 i2c LCD pressure sensor/src_serial/i2c_master.c
  function i2c_init (line 15) | void i2c_init(void)
  function i2c_start (line 20) | uint8_t i2c_start(uint8_t address)
  function i2c_write (line 46) | uint8_t i2c_write(uint8_t data)
  function i2c_read_ack (line 60) | uint8_t i2c_read_ack(void)
  function i2c_read_nack (line 71) | uint8_t i2c_read_nack(void)
  function i2c_transmit (line 82) | uint8_t i2c_transmit(uint8_t address, uint8_t* data, uint16_t length)
  function i2c_receive (line 96) | uint8_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length)
  function i2c_writeReg (line 111) | uint8_t i2c_writeReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, ui...
  function i2c_readReg (line 127) | uint8_t i2c_readReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uin...
  function i2c_stop (line 146) | void i2c_stop(void)

FILE: ATMega328 2017-03-19 i2c LCD pressure sensor/src_serial/main.c
  function pressure (line 10) | void pressure(){
  function serial_init (line 37) | void serial_init(){
  function serial_send (line 44) | void serial_send(unsigned char data){
  function serial_break (line 50) | void serial_break(){
  function serial_comma (line 54) | void serial_comma(){
  function serial_number (line 59) | void serial_number(unsigned long val){
  function main (line 70) | int main(void){

FILE: ATMega328 2017-08-14 action potential generator/main.c
  function LED_ON (line 5) | void LED_ON(){PORTB|=(1<<PB1);}
  function LED_OFF (line 6) | void LED_OFF(){PORTB&=~(1<<PB1);}
  function I1_ON (line 8) | void I1_ON(){PORTD|=(1<<PD7);}
  function I1_OFF (line 9) | void I1_OFF(){PORTD&=~(1<<PD7);}
  function I2_ON (line 11) | void I2_ON(){PORTD|=(1<<PD6);}
  function I2_OFF (line 12) | void I2_OFF(){PORTD&=~(1<<PD6);}
  function fire (line 14) | void fire(){
  function init_ADC (line 36) | void init_ADC(){
  function sleepMS (line 46) | void sleepMS(int time){
  function main (line 50) | int main(void){

FILE: ATMega328 2018-02-25 nrf24L01/src/main_rx.c
  function SetupRadio (line 23) | void SetupRadio(){
  function SetupIO (line 30) | void SetupIO(){
  function ShowLights (line 34) | void ShowLights(){
  function main (line 40) | int main()

FILE: ATMega328 2018-02-25 nrf24L01/src/main_tx.c
  function waitMs1 (line 17) | void waitMs1(){_delay_ms(1);}
  function waitMs (line 18) | void waitMs(int ms){while (ms-->0){waitMs1();}}
  function waitSec (line 19) | void waitSec(int sec){while (sec-->0){waitMs(1000);}}
  function sendBytes (line 25) | void sendBytes(uint8_t b1, uint8_t b2, uint8_t b3){
  function setLights (line 39) | void setLights(uint8_t green, uint8_t red){
  function main (line 45) | int main()

FILE: ATMega328 2018-02-25 nrf24L01/src/nrf24.c
  function nrf24_init (line 19) | void nrf24_init()
  function nrf24_config (line 27) | void nrf24_config(uint8_t channel, uint8_t pay_length)
  function nrf24_rx_address (line 66) | void nrf24_rx_address(uint8_t * adr)
  function nrf24_payload_length (line 74) | uint8_t nrf24_payload_length()
  function nrf24_tx_address (line 80) | void nrf24_tx_address(uint8_t* adr)
  function nrf24_dataReady (line 89) | uint8_t nrf24_dataReady()
  function nrf24_rxFifoEmpty (line 105) | uint8_t nrf24_rxFifoEmpty()
  function nrf24_payloadLength (line 115) | uint8_t nrf24_payloadLength()
  function nrf24_getData (line 126) | void nrf24_getData(uint8_t* data)
  function nrf24_retransmissionCount (line 145) | uint8_t nrf24_retransmissionCount()
  function nrf24_send (line 155) | void nrf24_send(uint8_t* value)
  function nrf24_isSending (line 191) | uint8_t nrf24_isSending()
  function nrf24_getStatus (line 208) | uint8_t nrf24_getStatus()
  function nrf24_lastMessageStatus (line 217) | uint8_t nrf24_lastMessageStatus()
  function nrf24_powerUpRx (line 241) | void nrf24_powerUpRx()
  function nrf24_powerUpTx (line 254) | void nrf24_powerUpTx()
  function nrf24_powerDown (line 261) | void nrf24_powerDown()
  function spi_transfer (line 268) | uint8_t spi_transfer(uint8_t tx)
  function nrf24_transferSync (line 303) | void nrf24_transferSync(uint8_t* dataout,uint8_t* datain,uint8_t len)
  function nrf24_transmitSync (line 315) | void nrf24_transmitSync(uint8_t* dataout,uint8_t len)
  function nrf24_configRegister (line 327) | void nrf24_configRegister(uint8_t reg, uint8_t value)
  function nrf24_readRegister (line 336) | void nrf24_readRegister(uint8_t reg, uint8_t* value, uint8_t len)
  function nrf24_writeRegister (line 345) | void nrf24_writeRegister(uint8_t reg, uint8_t* value, uint8_t len)

FILE: ATMega328 2018-02-25 nrf24L01/src/radioPinFunctions.c
  function nrf24_setupPins (line 35) | void nrf24_setupPins()
  function nrf24_ce_digitalWrite (line 44) | void nrf24_ce_digitalWrite(uint8_t state)
  function nrf24_csn_digitalWrite (line 56) | void nrf24_csn_digitalWrite(uint8_t state)
  function nrf24_sck_digitalWrite (line 68) | void nrf24_sck_digitalWrite(uint8_t state)
  function nrf24_mosi_digitalWrite (line 80) | void nrf24_mosi_digitalWrite(uint8_t state)
  function nrf24_miso_digitalRead (line 92) | uint8_t nrf24_miso_digitalRead()

FILE: ATMega328 2018-04-22 MAX7219 LED matrix/main.c
  function spi_init_master (line 14) | void spi_init_master (void)
  function spi_tranceiver (line 26) | void spi_tranceiver(unsigned char data)
  function LEDsendInit (line 32) | void LEDsendInit(uint8_t address, uint8_t data){
  function LEDsend (line 42) | void LEDsend(uint8_t address, uint8_t data){
  function LEDmatrixInit (line 49) | void LEDmatrixInit(){
  function MatrixClear (line 67) | void MatrixClear(){
  function MatrixRandom (line 74) | void MatrixRandom(){
  function MatrixRollRight (line 81) | void MatrixRollRight(){
  function MatrixRollLeft (line 90) | void MatrixRollLeft(){
  function MatrixRollDown (line 99) | void MatrixRollDown(){
  function MatrixPointOn (line 109) | void MatrixPointOn(uint8_t x, uint8_t y){
  function MatrixDisplayByte (line 115) | uint8_t MatrixDisplayByte(uint8_t segment, uint8_t row){
  function MatrixDisplay (line 126) | void MatrixDisplay(){
  function main (line 139) | int main(void){

FILE: ATMega328 2018-04-22 MAX7219 LED matrix/main_01_works.c
  function spi_init_master (line 17) | void spi_init_master (void)
  function spi_tranceiver (line 29) | void spi_tranceiver(unsigned char data)
  function LEDsendInit (line 35) | void LEDsendInit(uint8_t address, uint8_t data){
  function LEDsend (line 45) | void LEDsend(uint8_t address, uint8_t data){
  function LEDmatrixInit (line 52) | void LEDmatrixInit(){
  function LEDtest2 (line 59) | void LEDtest2(uint8_t lightCol, uint8_t lightRow){
  function main (line 95) | int main(void){

FILE: ATMega328 2018-04-22 MAX7219 LED matrix/main_02_matrix.c
  function spi_init_master (line 14) | void spi_init_master (void)
  function spi_tranceiver (line 26) | void spi_tranceiver(unsigned char data)
  function LEDsendInit (line 32) | void LEDsendInit(uint8_t address, uint8_t data){
  function LEDsend (line 42) | void LEDsend(uint8_t address, uint8_t data){
  function LEDmatrixInit (line 49) | void LEDmatrixInit(){
  function MatrixClear (line 66) | void MatrixClear(){
  function MatrixRandom (line 76) | void MatrixRandom(){
  function MatrixSetPoint (line 86) | void MatrixSetPoint(uint8_t lightCol, uint8_t lightRow){
  function MatrixDisplay (line 105) | void MatrixDisplay(){
  function main (line 118) | int main(void){

FILE: ATMega328 2018-04-22 MAX7219 LED matrix/main_03_scott.c
  function spi_init_master (line 14) | void spi_init_master (void)
  function spi_tranceiver (line 26) | void spi_tranceiver(unsigned char data)
  function LEDsendInit (line 32) | void LEDsendInit(uint8_t address, uint8_t data){
  function LEDsend (line 42) | void LEDsend(uint8_t address, uint8_t data){
  function LEDmatrixInit (line 49) | void LEDmatrixInit(){
  function MatrixClear (line 67) | void MatrixClear(){
  function MatrixRandom (line 74) | void MatrixRandom(){
  function MatrixRollRight (line 81) | void MatrixRollRight(){
  function MatrixRollLeft (line 90) | void MatrixRollLeft(){
  function MatrixRollDown (line 99) | void MatrixRollDown(){
  function MatrixPointOn (line 109) | void MatrixPointOn(uint8_t x, uint8_t y){
  function MatrixDisplayByte (line 115) | uint8_t MatrixDisplayByte(uint8_t segment, uint8_t row){
  function MatrixDisplay (line 126) | void MatrixDisplay(){
  function main (line 139) | int main(void){

FILE: ATMega328 2019-06-20 TTL laser controller 2/main.c
  function initializePorts (line 17) | void initializePorts()
  function setOutputState (line 23) | void setOutputState(char channel, char state)
  function isHigh (line 41) | char isHigh(char channel)
  function updateAllMsRemaining (line 62) | void updateAllMsRemaining()
  function updateStateByMsRemaining (line 74) | void updateStateByMsRemaining()
  function decrementMsRemaining (line 97) | void decrementMsRemaining()
  function respondToInputsForever (line 109) | void respondToInputsForever()
  function testLights (line 121) | void testLights(int times)
  function main (line 141) | int main(void)

FILE: ATMega328 2019-08-04 max7219 7segment display/display-max7219-7seg.c
  function SpiInitialize (line 2) | void SpiInitialize(void)
  function SpiSend (line 17) | void SpiSend(unsigned char data)
  function DisplaySendCommand (line 25) | void DisplaySendCommand(uint8_t address, uint8_t data)
  function DisplayNumber (line 33) | void DisplayNumber(long number)
  function DisplayInitialize (line 47) | void DisplayInitialize()
  function DisplayClear (line 55) | void DisplayClear()

FILE: ATMega328 2019-08-04 max7219 7segment display/main.c
  function main (line 7) | int main(void)

FILE: ATMega48 2013-05-14 SHRFP monitor/GUI/SH-RFP-monitor.py
  function updateData (line 9) | def updateData():

FILE: ATMega48 2013-05-14 SHRFP monitor/GUI/SwhRecorder.py
  class SwhRecorder (line 10) | class SwhRecorder:
    method __init__ (line 13) | def __init__(self):
    method setup (line 30) | def setup(self):
    method close (line 54) | def close(self):
    method getAudio (line 62) | def getAudio(self):
    method record (line 71) | def record(self,buffers=-1):
    method continuousStart (line 97) | def continuousStart(self):
    method continuousEnd (line 104) | def continuousEnd(self):
    method whichPulse (line 110) | def whichPulse(self, pulse):
    method whichPulses (line 124) | def whichPulses(self, pulses):
    method SHRFP_islocked (line 130) | def SHRFP_islocked(self,data):
    method SHRFP_handle (line 153) | def SHRFP_handle(self,points):
    method SHRFP_newPulse (line 169) | def SHRFP_newPulse(self):
    method SHRFP_checknew (line 218) | def SHRFP_checknew(self):
    method downsample (line 273) | def downsample(self,data,mult):
    method fft (line 281) | def fft(self,data=None,trimBy=10,logScale=False,divBy=100):
    method plotAudio (line 299) | def plotAudio(self):

FILE: ATMega48 2013-05-14 SHRFP monitor/GUI/SwhRecorder2.py
  class SwhRecorder (line 12) | class SwhRecorder:
    method __init__ (line 36) | def __init__(self):
    method setup (line 66) | def setup(self):
    method close (line 77) | def close(self):
    method decodeBit (line 81) | def decodeBit(self,s):
    method analyzeDataString (line 94) | def analyzeDataString(self):
    method continuousAnalysis (line 112) | def continuousAnalysis(self):
    method continuousRecord (line 187) | def continuousRecord(self):
    method continuousDataGo (line 199) | def continuousDataGo(self):
    method continuousEnd (line 205) | def continuousEnd(self):

FILE: ATMega48 2013-05-14 SHRFP monitor/GUI/SwhRfpDecoder.py
  function updateData (line 9) | def updateData():

FILE: ATMega48 2013-05-14 SHRFP monitor/GUI/ui_plot.py
  class Ui_win_plot (line 17) | class Ui_win_plot(object):
    method setupUi (line 18) | def setupUi(self, win_plot):
    method retranslateUi (line 68) | def retranslateUi(self, win_plot):

FILE: ATMega48 2013-05-14 SHRFP monitor/MCU code/main.c
  function tick (line 6) | void tick(char ticks){
  function pulse (line 13) | void pulse(char ticks){
  function send_sync (line 20) | void send_sync(){
  function send_lose (line 30) | void send_lose(){
  function sendByte (line 37) | void sendByte(int val){
  function send (line 46) | void send(int val){
  function main (line 52) | int main (void)

FILE: ATMega8 AD9850 DDS receiver/old/03 mega8 DDS/main.c
  function tick (line 16) | void tick(){
  function ckPulse (line 20) | void ckPulse(){
  function loadPulse (line 27) | void loadPulse(){
  function freqSet (line 34) | void freqSet(uint64_t freq){
  function sendBit (line 40) | void sendBit(char toSend){
  function goToCode (line 46) | void goToCode(unsigned long int freqCode){
  function freq2code (line 55) | unsigned long int freq2code(unsigned long freqHz){
  function splash (line 62) | void splash(){
  function main (line 72) | int main (void)

FILE: ATMega8 AD9850 DDS receiver/old/08 multiband qrss dds/main.c
  function ckPulse (line 16) | void ckPulse(){
  function loadPulse (line 22) | void loadPulse(){
  function freqSet (line 27) | void freqSet(uint64_t freq){
  function sendBit (line 34) | void sendBit(char toSend){
  function goToCode (line 40) | void goToCode(unsigned long int freqCode){
  function freq2code (line 49) | unsigned long int freq2code(unsigned long int freqHz){
  function main (line 61) | int main(void){

FILE: ATMega8 AD9850 DDS receiver/old/09 temp controlled DDS/main.c
  function ckPulse (line 27) | void ckPulse(){
  function loadPulse (line 37) | void loadPulse(){
  function freqSet (line 47) | void freqSet(uint64_t freq){
  function sendBit (line 53) | void sendBit(char toSend){
  function goToCode (line 65) | void goToCode(unsigned long int freqCode){
  function freq2code (line 74) | unsigned long int freq2code(unsigned long int freqHz){
  function DDS_setup (line 82) | void DDS_setup(){
  function DDS_updateFreq (line 89) | void DDS_updateFreq(){
  function pushedENTER (line 99) | void pushedENTER() {
  function pushedUP (line 105) | void pushedUP() {
  function pushedDOWN (line 110) | void pushedDOWN() {
  function ledON (line 115) | void ledON(){PORTD|=(1<<PD7);}
  function ledOFF (line 116) | void ledOFF(){PORTD&=~(1<<PD7);}
  function debounce (line 118) | void debounce(){
  function hold (line 128) | void hold(int sec10){
  function de (line 172) | void de(){
  function da (line 182) | void da(){
  function sp (line 192) | void sp(){
  function slant (line 199) | void slant(){
  function main (line 215) | int main(void){

FILE: ATTiny2313 2015-01-01 USART serial/main.c
  function serial_init (line 8) | void serial_init(){
  function serial_send (line 16) | void serial_send(unsigned char data){
  function serial_break (line 22) | void serial_break(){
  function serial_number (line 27) | void serial_number(long val){
  function main (line 37) | int main(void){

FILE: ATTiny2313 2016-08-14 clock divider/main.c
  function ISR (line 15) | ISR(TIMER1_COMPA_vect){
  function timer1_setup (line 34) | void timer1_setup(){
  function timer0_setup (line 42) | void timer0_setup(){
  function main (line 49) | int main(void){

FILE: ATTiny2313 2016-08-14 clock divider/simple/main.c
  function ISR (line 15) | ISR(TIMER1_COMPA_vect){
  function timer1_setup (line 23) | void timer1_setup(){
  function main (line 31) | int main(void){

FILE: ATTiny2313 2017-02-01 PWM/main.c
  function setupPWM_8bit (line 10) | void setupPWM_8bit(){
  function setupPWM_16bit (line 17) | void setupPWM_16bit(){
  function main (line 26) | int main(void){

FILE: ATTiny2313 2017-02-02 rotary encoder/main.c
  function setupPWM_16bit (line 12) | void setupPWM_16bit(){
  function duty_decrease (line 21) | void duty_decrease(int dropBy){
  function duty_increase (line 27) | void duty_increase(int raiseBy){
  function poll_encoder_v1 (line 33) | void poll_encoder_v1(){
  function poll_encoder_v2 (line 48) | void poll_encoder_v2(){
  function main (line 73) | int main(void){

FILE: ATTiny2313 2017-02-02 rotary encoder/main_v1_polling.c
  function LED (line 9) | void LED(int onTimeMS){
  function pollEncoder (line 16) | void pollEncoder(){
  function main (line 31) | int main(void){

FILE: ATTiny2313 2017-02-03 pin change interrupt/main.c
  function ISR (line 7) | ISR(PCINT_vect){poll_encoder_v2();}
  function main (line 9) | int main(void){

FILE: ATTiny2313 2017-02-04 QRSS VFO controller/main.c
  function setupPWM_16bit (line 15) | void setupPWM_16bit(){
  function duty_decrease (line 24) | void duty_decrease(int dropBy){
  function duty_increase (line 30) | void duty_increase(int raiseBy){
  function poll_encoder_v1 (line 36) | void poll_encoder_v1(){
  function poll_encoder_v2 (line 51) | void poll_encoder_v2(){
  function ISR (line 77) | ISR(PCINT_vect){poll_encoder_v2();}
  function main (line 79) | int main(void){

FILE: ATTiny2313 2017-07-22 shutter controller/main.c
  function LED_POWER_ON (line 6) | void LED_POWER_ON(){PORTD|=(1<<PD2);}
  function LED_POWER_OFF (line 7) | void LED_POWER_OFF(){PORTD&=~(1<<PD2);}
  function LED_POWER_TOGGLE (line 8) | void LED_POWER_TOGGLE(){PORTD^=(1<<PD2);}
  function LED_PV_ON (line 9) | void LED_PV_ON(){PORTD|=(1<<PD3);}
  function LED_PV_OFF (line 10) | void LED_PV_OFF(){PORTD&=~(1<<PD3);}
  function LED_CF_ON (line 11) | void LED_CF_ON(){PORTD|=(1<<PD4);}
  function LED_CF_OFF (line 12) | void LED_CF_OFF(){PORTD&=~(1<<PD4);}
  function LED_EN_ON (line 13) | void LED_EN_ON(){PORTD|=(1<<PD5);}
  function LED_EN_OFF (line 14) | void LED_EN_OFF(){PORTD&=~(1<<PD5);}
  function LED_LASER_IN_ON (line 15) | void LED_LASER_IN_ON(){PORTB|=(1<<PB0);}
  function LED_LASER_IN_OFF (line 16) | void LED_LASER_IN_OFF(){PORTB&=~(1<<PB0);}
  function LED_LASER_OUT_ON (line 17) | void LED_LASER_OUT_ON(){PORTB|=(1<<PB1);}
  function LED_LASER_OUT_OFF (line 18) | void LED_LASER_OUT_OFF(){PORTB&=~(1<<PB1);}
  function SERVO_LOW (line 23) | void SERVO_LOW(){PORTB|=(1<<PB2);}
  function SERVO_HIGH (line 24) | void SERVO_HIGH(){PORTB&=~(1<<PB2);}
  function wait (line 26) | void wait(){_delay_ms(30);}
  function test (line 27) | void test(){
  function SHUTTER_OPEN (line 42) | void SHUTTER_OPEN(){
  function SHUTTER_CLOSE (line 47) | void SHUTTER_CLOSE(){
  function SET_POSITION (line 53) | void SET_POSITION(int position){
  function poll (line 82) | void poll(){
  function main (line 115) | int main(void){

FILE: ATTiny2313 2017-08-02 stimulus generator/main.c
  function output_HIGH (line 7) | void output_HIGH(){PORTB|=(1<<PB4);}
  function output_LOW (line 8) | void output_LOW(){PORTB&=~(1<<PB4);}
  function LED1_ON (line 9) | void LED1_ON(){PORTB|=(1<<PB3);}
  function LED1_OFF (line 10) | void LED1_OFF(){PORTB&=~(1<<PB3);}
  function LED2_ON (line 11) | void LED2_ON(){PORTB|=(1<<PB2);}
  function LED2_OFF (line 12) | void LED2_OFF(){PORTB&=~(1<<PB2);}
  function singlePulse_20Hz_100us (line 14) | void singlePulse_20Hz_100us(){
  function poll (line 26) | void poll(){
  function main (line 37) | int main(void){

FILE: ATTiny2313 LEDblink/main.c
  function main (line 5) | int main(void){

FILE: ATTiny826 Clock/ATTiny826 Clock and Timer/main.c
  function ccp_write (line 6) | void ccp_write(volatile register8_t* reg, uint8_t value){
  function configure_clock (line 11) | void configure_clock(){
  function main (line 16) | int main(void)

FILE: ATTiny826 LED blink/LedBlink/LedBlink/main.c
  function main (line 5) | int main(void)

FILE: ATTiny826 Timer 1pps/ATTiny826 Clock and Timer/main.c
  function ccp_write (line 4) | void ccp_write(volatile register8_t* address, uint8_t value){
  function configure_clock_internal_10mhz (line 9) | void configure_clock_internal_10mhz(){
  function configure_clock_external (line 15) | void configure_clock_external(){
  function main (line 43) | int main(void)

FILE: ATTiny826 counter/ATTiny826 counter/main.c
  function ccp_write (line 11) | void ccp_write(volatile register8_t* address, uint8_t value){
  function configure_clock_external_10mhz (line 16) | void configure_clock_external_10mhz(){
  function configure_1pps (line 22) | void configure_1pps(){
  function configure_cascaded_counter (line 30) | void configure_cascaded_counter(){
  function send_current_count (line 47) | void send_current_count(){
  function ISR (line 63) | ISR(TCA0_OVF_vect)
  function main (line 78) | int main(void)

FILE: ATTiny826 counter/ATTiny826 counter/serial.h
  function USART0_sendChar (line 6) | static void USART0_sendChar(char c)
  function USART0_printChar (line 12) | static int USART0_printChar(char c, FILE *stream)
  function USART0_init (line 20) | void USART0_init(void)
  function USART0_sendString (line 31) | void USART0_sendString(char *str)
  function SERIAL_sendComma (line 39) | static void SERIAL_sendComma(){
  function SERIAL_sendBreak (line 43) | static void SERIAL_sendBreak(){
  function SERIAL_sendUnsignedLong (line 48) | static void SERIAL_sendUnsignedLong(unsigned long count){

FILE: ATTiny826 serial/ATTiny826 serial/main.c
  function USART0_sendChar (line 8) | static void USART0_sendChar(char c)
  function USART0_printChar (line 14) | static int USART0_printChar(char c, FILE *stream)
  function USART0_init (line 22) | void USART0_init(void)
  function USART0_sendString (line 33) | void USART0_sendString(char *str)
  function main (line 42) | int main(void)

FILE: ATTiny826 speech/main.c
  function ccp_write (line 6) | void ccp_write(volatile register8_t* reg, uint8_t value){
  function setup_clock_20mhz_internal (line 11) | void setup_clock_20mhz_internal(){
  function setup_TCB_PWM (line 20) | void setup_TCB_PWM(){
  function setup_TCA_Advance (line 36) | void setup_TCA_Advance(){
  function ISR (line 57) | ISR(TCA0_OVF_vect)
  function main (line 67) | int main(void)

FILE: ATTiny85 2016-07-24 TTL laser controller/main.c
  function main (line 5) | int main (void){

FILE: ATTiny85 2016-07-24 TTL laser controller/up.py
  function send (line 7) | def send(ser,cmd):

FILE: ATTiny85 2016-07-31 frequency generator/main.c
  function main (line 5) | int main (void){

FILE: ATTiny85 2016-12-30 PWM/main.c
  function setupPWM (line 10) | void setupPWM(){
  function main (line 37) | int main() {

FILE: ATTiny85 2016-12-30 PWM/main_squares_triangles.c
  function setupPWM (line 10) | void setupPWM(){
  function squares (line 37) | void squares(int count, int low, int high){
  function triangle (line 46) | void triangle(int count, int low, int high){
  function main (line 54) | int main() {

FILE: ATTiny85 2017-02-05 ADC/main.c
  function main (line 5) | int main() {

FILE: ATTiny85 2017-08-19 action potential generator/main.c
  function LED_ON (line 5) | void LED_ON(){PORTB|=(1<<PB0);}
  function LED_OFF (line 6) | void LED_OFF(){PORTB&=~(1<<PB0);}
  function I1_ON (line 8) | void I1_ON(){PORTB|=(1<<PB4);}
  function I1_OFF (line 9) | void I1_OFF(){PORTB&=~(1<<PB4);}
  function I2_ON (line 11) | void I2_ON(){PORTB|=(1<<PB3);}
  function I2_OFF (line 12) | void I2_OFF(){PORTB&=~(1<<PB3);}
  function fire (line 14) | void fire(){
  function init_ADC (line 37) | void init_ADC(){
  function sleepMS (line 47) | void sleepMS(int time){
  function main (line 51) | int main(void){

FILE: ATTiny85 2017-09-01 PS4 controller auto run auto fire/main.c
  function main (line 5) | int main() {

FILE: ATTiny85 LEDblink/main.c
  function main (line 5) | int main() {

FILE: AVR64DD32 7seg multiplex/main.c
  function setup_display (line 31) | void setup_display(){
  function setup_timer (line 51) | void setup_timer(){
  function set_digits (line 63) | void set_digits(uint16_t number){
  function ISR (line 73) | ISR(TCB0_INT_vect)
  function SPI_SEND (line 103) | uint8_t SPI_SEND(uint8_t data){
  function readHX (line 113) | unsigned long readHX() {
  function main (line 139) | int main(void)

FILE: AVR64DD32 LEDblink/LEDblink/main.c
  function main (line 6) | int main(void)

FILE: AVR64DD32 SPI audio/main.c
  function SPI_SEND (line 9) | uint8_t SPI_SEND(uint8_t data){
  function SPI_read_id (line 15) | void SPI_read_id(){
  function SPI_read_byte (line 26) | uint8_t SPI_read_byte(long address){
  function setup_TCB_PWM (line 43) | void setup_TCB_PWM(){
  function setup_TCA_Advance (line 63) | void setup_TCA_Advance(){
  function ISR (line 77) | ISR(TCA0_OVF_vect)
  function main (line 87) | int main(void)

FILE: AVR64DD32 adc/main.c
  function setup_display (line 31) | void setup_display(){
  function setup_timer (line 51) | void setup_timer(){
  function set_digits (line 63) | void set_digits(uint16_t number){
  function ISR (line 73) | ISR(TCB0_INT_vect)
  function setup_adc (line 100) | void setup_adc(void)
  function main (line 109) | int main(void)

FILE: AVR64DD32 audio music/main.c
  function setup_TCB_PWM (line 10) | void setup_TCB_PWM(){
  function setup_TCA_Advance (line 26) | void setup_TCA_Advance(){
  function ISR (line 40) | ISR(TCA0_OVF_vect)
  function setup_DAC (line 61) | void setup_DAC(){
  function main (line 65) | int main(void)

FILE: AVR64DD32 audio speech/main.c
  function setup_TCB_PWM (line 10) | void setup_TCB_PWM(){
  function setup_TCA_Advance (line 26) | void setup_TCA_Advance(){
  function ISR (line 40) | ISR(TCA0_OVF_vect)
  function main (line 59) | int main(void)

FILE: AVR64DD32 comparator/main.c
  function main (line 4) | int main(void)

FILE: AVR64DD32 counter/Serial.h
  function USART0_sendChar (line 9) | static void USART0_sendChar(char c)
  function USART0_printChar (line 15) | static int USART0_printChar(char c, FILE *stream)
  function USART0_sendString (line 21) | void USART0_sendString(char *str)
  function setup_serial (line 31) | void setup_serial(void)
  function print_with_commas (line 49) | void print_with_commas(unsigned long freq){

FILE: AVR64DD32 counter/main.c
  function led_toggle (line 25) | void led_toggle(){
  function ISR (line 30) | ISR(TCD0_OVF_vect)
  function handle_5hz_tick (line 42) | void handle_5hz_tick(){
  function ISR (line 55) | ISR(RTC_CNT_vect){
  function ISR (line 60) | ISR(TCA0_OVF_vect){
  function setup_led (line 65) | void setup_led(){
  function setup_system_clock_24MHz (line 69) | void setup_system_clock_24MHz(){
  function setup_extclk_counter (line 79) | void setup_extclk_counter(){
  function setup_gate_rtc (line 92) | void setup_gate_rtc(){
  function setup_gate_sysclk (line 105) | void setup_gate_sysclk(){
  function main (line 116) | int main(void)

FILE: AVR64DD32 serial/main.c
  function USART0_sendChar (line 9) | static void USART0_sendChar(char c)
  function USART0_printChar (line 15) | static int USART0_printChar(char c, FILE *stream)
  function USART0_sendString (line 21) | void USART0_sendString(char *str)
  function setup_serial (line 31) | void setup_serial(void)
  function main (line 50) | int main(void)

FILE: AVR64DD32 talking counter/NumberSpeaker.h
  function GetNextAudioLevel (line 8) | uint8_t GetNextAudioLevel() {
  function speak_digit (line 16) | void speak_digit(uint8_t digit) {
  function speak_point (line 78) | void speak_point(){
  function speak_digits (line 82) | void speak_digits(uint32_t value){
  function speak_mhz (line 113) | void speak_mhz(uint32_t frequency, uint8_t decimals){

FILE: AVR64DD32 talking counter/Serial.h
  function USART0_sendChar (line 9) | static void USART0_sendChar(char c)
  function USART0_printChar (line 15) | static int USART0_printChar(char c, FILE *stream)
  function USART0_sendString (line 21) | void USART0_sendString(char *str)
  function setup_serial (line 31) | void setup_serial(void)
  function print_with_commas (line 49) | void print_with_commas(unsigned long freq){

FILE: AVR64DD32 talking counter/main.c
  function led_toggle (line 30) | void led_toggle(){
  function led_on (line 34) | void led_on(){
  function led_off (line 38) | void led_off(){
  function ISR (line 43) | ISR(TCD0_OVF_vect)
  function ISR (line 54) | ISR(RTC_CNT_vect){
  function setup_led (line 77) | void setup_led(){
  function setup_system_clock_24MHz (line 81) | void setup_system_clock_24MHz(){
  function setup_extclk_counter (line 87) | void setup_extclk_counter(){
  function setup_rtc_gate (line 100) | void setup_rtc_gate(){
  function setup_button (line 113) | void setup_button(){
  function wait_for_button_press (line 118) | void wait_for_button_press(){
  function setup_DAC (line 122) | void setup_DAC(){
  function main (line 126) | int main(void)

FILE: Arduino SI5351 DDS/dds/dds/si5351.cpp
  type si5351_clock (line 174) | enum si5351_clock
  type si5351_clock (line 189) | enum si5351_clock
  type Si5351RegSet (line 191) | struct Si5351RegSet
  type Si5351RegSet (line 256) | struct Si5351RegSet
  type si5351_clock (line 278) | enum si5351_clock
  type si5351_clock (line 451) | enum si5351_clock
  type Si5351RegSet (line 453) | struct Si5351RegSet
  type si5351_pll (line 506) | enum si5351_pll
  type Si5351RegSet (line 508) | struct Si5351RegSet
  type si5351_clock (line 584) | enum si5351_clock
  type Si5351RegSet (line 584) | struct Si5351RegSet
  type si5351_clock (line 686) | enum si5351_clock
  type si5351_clock (line 714) | enum si5351_clock
  type si5351_drive (line 714) | enum si5351_drive
  type si5351_pll_input (line 785) | enum si5351_pll_input
  type si5351_clock (line 806) | enum si5351_clock
  type si5351_pll_input (line 824) | enum si5351_pll_input
  type si5351_pll (line 837) | enum si5351_pll
  type si5351_clock (line 859) | enum si5351_clock
  type si5351_pll (line 859) | enum si5351_pll
  type si5351_clock (line 888) | enum si5351_clock
  type si5351_clock (line 933) | enum si5351_clock
  type si5351_clock (line 959) | enum si5351_clock
  type si5351_clock (line 989) | enum si5351_clock
  type si5351_clock_source (line 989) | enum si5351_clock_source
  type si5351_clock (line 1035) | enum si5351_clock
  type si5351_clock_disable (line 1035) | enum si5351_clock_disable
  type si5351_clock_fanout (line 1078) | enum si5351_clock_fanout
  type si5351_pll (line 1130) | enum si5351_pll
  type si5351_pll_input (line 1130) | enum si5351_pll_input
  type Si5351RegSet (line 1186) | struct Si5351RegSet
  type si5351_pll_input (line 1267) | enum si5351_pll_input
  type si5351_pll (line 1352) | enum si5351_pll
  type Si5351RegSet (line 1352) | struct Si5351RegSet
  type Si5351RegSet (line 1438) | struct Si5351RegSet
  type Si5351RegSet (line 1536) | struct Si5351RegSet
  type Si5351Status (line 1625) | struct Si5351Status
  type Si5351IntStatus (line 1639) | struct Si5351IntStatus
  type si5351_clock (line 1652) | enum si5351_clock

FILE: Arduino SI5351 DDS/dds/dds/si5351.h
  type si5351_clock (line 238) | enum si5351_clock {SI5351_CLK0, SI5351_CLK1, SI5351_CLK2, SI5351_CLK3,
  type si5351_pll (line 241) | enum si5351_pll {SI5351_PLLA, SI5351_PLLB}
  type si5351_drive (line 243) | enum si5351_drive {SI5351_DRIVE_2MA, SI5351_DRIVE_4MA, SI5351_DRIVE_6MA,...
  type si5351_clock_source (line 245) | enum si5351_clock_source {SI5351_CLK_SRC_XTAL, SI5351_CLK_SRC_CLKIN, SI5...
  type si5351_clock_disable (line 247) | enum si5351_clock_disable {SI5351_CLK_DISABLE_LOW, SI5351_CLK_DISABLE_HI...
  type si5351_clock_fanout (line 249) | enum si5351_clock_fanout {SI5351_FANOUT_CLKIN, SI5351_FANOUT_XO, SI5351_...
  type si5351_pll_input (line 251) | enum si5351_pll_input {SI5351_PLL_INPUT_XO, SI5351_PLL_INPUT_CLKIN}
  type Si5351RegSet (line 255) | struct Si5351RegSet
  type Si5351Status (line 262) | struct Si5351Status
  type Si5351IntStatus (line 271) | struct Si5351IntStatus
  function class (line 279) | class Si5351

FILE: Arduino speech/test1/speech.h
  function play (line 1605) | void play(uint8_t samples[], int length) {
  function play_point (line 1626) | void play_point() {
  function play_digit (line 1630) | void play_digit(uint8_t digit) {

FILE: BusPirate 2017-02-04 i2c ms5661 pressure/busPirate_ms5661.py
  function send (line 8) | def send(ser,cmd,silent=False):
  function getTemp (line 23) | def getTemp(ser,address='0x91',silent=True,fahrenheit=False):

FILE: BusPirate 2017-02-04 i2c ms5661 pressure/buspirate.py
  function send (line 9) | def send(ser,cmd,silent=False):
  function getTemp (line 24) | def getTemp(ser,address='0x91',silent=True,fahrenheit=False):

FILE: BusPirate 2017-02-04 i2c ms5661 pressure/scratch_record_i2c_pressure.py
  function getPressure (line 7) | def getPressure():
  function getTemp (line 13) | def getTemp():
  function getPROM (line 18) | def getPROM():

FILE: BusPirate 2017-02-04 i2c temperature/busPirate_LM75A.py
  function send (line 8) | def send(ser,cmd,silent=False):
  function getTemp (line 23) | def getTemp(ser,address='0x91',silent=True,fahrenheit=False):

FILE: BusPirate 2017-02-04 i2c temperature/file logging/plot.py
  function smooth (line 5) | def smooth(data,sigma=60):

FILE: BusPirate 2017-02-04 i2c temperature/file logging/record.py
  function send (line 11) | def send(ser,cmd,silent=False):
  function getTemp (line 26) | def getTemp(ser,address='0x91',silent=True,fahrenheit=False):

FILE: BusPirate 2017-03-11 crystal oven/busPirate_LM75A.py
  function send (line 12) | def send(ser,cmd,silent=False):
  function getTemp (line 27) | def getTemp(ser,address='0x91'):
  function getFreq (line 44) | def getFreq(ser):

FILE: BusPirate/demo.py
  class BusPirate (line 13) | class BusPirate:
    method __init__ (line 15) | def __init__(self,port=None,baud=115200):
    method portScan (line 33) | def portScan(self):
    method connect (line 49) | def connect(self):
    method disconnect (line 60) | def disconnect(self):
    method command (line 69) | def command(self,command=None,showOutput=True):
    method commandSequence (line 96) | def commandSequence(self,commands,showOutput=True):
    method info (line 111) | def info(self):
    method mainMenu (line 114) | def mainMenu(self):
    method reset (line 124) | def reset(self):
    method mode_i2c (line 128) | def mode_i2c(self,rate='3'):
    method i2c_read (line 138) | def i2c_read(self,numBytes=2,address='0x91',returnTotal=True):
    method power (line 156) | def power(self,on=True):
    method pullup (line 163) | def pullup(self,high=True):
    method aux (line 170) | def aux(self,high=True):
    method pwm (line 178) | def pwm(self,enable=True,duty=50,kHz=1):

FILE: FT232H SPI ADC/UsbAdc/FTD2XX_NET/CommunicatorBase.cs
  class CommunicatorBase (line 5) | public abstract class CommunicatorBase
    method Scan (line 10) | public FTDI.FT_DEVICE_INFO_NODE[] Scan()
    method OpenByIndex (line 19) | public void OpenByIndex(int index = 0)
    method AssertOK (line 25) | protected void AssertOK()
    method Write (line 31) | protected void Write(byte[] bytes)
    method ReadBytes (line 38) | protected byte[] ReadBytes(uint count)
    method FlushBuffer (line 47) | protected void FlushBuffer()

FILE: FT232H SPI ADC/UsbAdc/FTD2XX_NET/FTD2XX_NET.cs
  class FTDI (line 62) | public class FTDI
    method FTDI (line 69) | public FTDI()
    method FTDI (line 106) | public FTDI(String path)
    method FindFunctionPointers (line 141) | private void FindFunctionPointers()
    method LoadLibrary (line 216) | [DllImport("kernel32.dll")]
    method GetProcAddress (line 218) | [DllImport("kernel32.dll")]
    method FreeLibrary (line 220) | [DllImport("kernel32.dll")]
    type FT_STATUS (line 355) | public enum FT_STATUS
    type FT_ERROR (line 435) | private enum FT_ERROR
    class FT_DATA_BITS (line 452) | public class FT_DATA_BITS
    class FT_STOP_BITS (line 468) | public class FT_STOP_BITS
    class FT_PARITY (line 484) | public class FT_PARITY
    class FT_FLOW_CONTROL (line 512) | public class FT_FLOW_CONTROL
    class FT_PURGE (line 536) | public class FT_PURGE
    class FT_MODEM_STATUS (line 552) | public class FT_MODEM_STATUS
    class FT_LINE_STATUS (line 576) | public class FT_LINE_STATUS
    class FT_EVENTS (line 600) | public class FT_EVENTS
    class FT_BIT_MODES (line 620) | public class FT_BIT_MODES
    class FT_CBUS_OPTIONS (line 660) | public class FT_CBUS_OPTIONS
    class FT_232H_CBUS_OPTIONS (line 720) | public class FT_232H_CBUS_OPTIONS
    class FT_XSERIES_CBUS_OPTIONS (line 778) | public class FT_XSERIES_CBUS_OPTIONS
    class FT_FLAGS (line 874) | public class FT_FLAGS
    class FT_DRIVE_CURRENT (line 890) | public class FT_DRIVE_CURRENT
    type FT_DEVICE (line 914) | public enum FT_DEVICE
    class FT_DEVICE_INFO_NODE (line 1039) | public class FT_DEVICE_INFO_NODE
    class FT_PROGRAM_DATA (line 1076) | [StructLayout(LayoutKind.Sequential, Pack = 4)]
    type FT_EEPROM_HEADER (line 1219) | [StructLayout(LayoutKind.Sequential, Pack = 4)]
    type FT_XSERIES_DATA (line 1235) | [StructLayout(LayoutKind.Sequential, Pack = 4)]
    class FT_EEPROM_DATA (line 1286) | public class FT_EEPROM_DATA
    class FT232B_EEPROM_STRUCTURE (line 1335) | public class FT232B_EEPROM_STRUCTURE : FT_EEPROM_DATA
    class FT2232_EEPROM_STRUCTURE (line 1363) | public class FT2232_EEPROM_STRUCTURE : FT_EEPROM_DATA
    class FT232R_EEPROM_STRUCTURE (line 1433) | public class FT232R_EEPROM_STRUCTURE : FT_EEPROM_DATA
    class FT2232H_EEPROM_STRUCTURE (line 1534) | public class FT2232H_EEPROM_STRUCTURE : FT_EEPROM_DATA
    class FT4232H_EEPROM_STRUCTURE (line 1635) | public class FT4232H_EEPROM_STRUCTURE : FT_EEPROM_DATA
    class FT232H_EEPROM_STRUCTURE (line 1731) | public class FT232H_EEPROM_STRUCTURE : FT_EEPROM_DATA
    class FT_XSERIES_EEPROM_STRUCTURE (line 1872) | public class FT_XSERIES_EEPROM_STRUCTURE : FT_EEPROM_DATA
    class FT_EXCEPTION (line 2058) | [global::System.Serializable]
      method FT_EXCEPTION (line 2064) | public FT_EXCEPTION() { }
      method FT_EXCEPTION (line 2069) | public FT_EXCEPTION(string message) : base(message) { }
      method FT_EXCEPTION (line 2075) | public FT_EXCEPTION(string message, Exception inner) : base(message,...
      method FT_EXCEPTION (line 2081) | protected FT_EXCEPTION(
    method GetNumberOfDevices (line 2159) | public FT_STATUS GetNumberOfDevices(ref UInt32 devcount)
    method GetDeviceList (line 2198) | public FT_STATUS GetDeviceList(FT_DEVICE_INFO_NODE[] devicelist)
    method OpenByIndex (line 2287) | public FT_STATUS OpenByIndex(UInt32 index)
    method OpenBySerialNumber (line 2373) | public FT_STATUS OpenBySerialNumber(string serialnumber)
    method OpenByDescription (line 2459) | public FT_STATUS OpenByDescription(string description)
    method OpenByLocation (line 2545) | public FT_STATUS OpenByLocation(UInt32 location)
    method Close (line 2629) | public FT_STATUS Close()
    method Read (line 2676) | public FT_STATUS Read(byte[] dataBuffer, UInt32 numBytesToRead, ref UI...
    method Read (line 2724) | public FT_STATUS Read(out string dataBuffer, UInt32 numBytesToRead, re...
    method Write (line 2778) | public FT_STATUS Write(byte[] dataBuffer, Int32 numBytesToWrite, ref U...
    method Write (line 2819) | public FT_STATUS Write(byte[] dataBuffer, UInt32 numBytesToWrite, ref ...
    method Write (line 2860) | public FT_STATUS Write(string dataBuffer, Int32 numBytesToWrite, ref U...
    method Write (line 2904) | public FT_STATUS Write(string dataBuffer, UInt32 numBytesToWrite, ref ...
    method ResetDevice (line 2948) | public FT_STATUS ResetDevice()
    method Purge (line 2990) | public FT_STATUS Purge(UInt32 purgemask)
    method SetEventNotification (line 3034) | public FT_STATUS SetEventNotification(UInt32 eventmask, EventWaitHandl...
    method StopInTask (line 3075) | public FT_STATUS StopInTask()
    method RestartInTask (line 3116) | public FT_STATUS RestartInTask()
    method ResetPort (line 3157) | public FT_STATUS ResetPort()
    method CyclePort (line 3199) | public FT_STATUS CyclePort()
    method Rescan (line 3257) | public FT_STATUS Rescan()
    method Reload (line 3298) | public FT_STATUS Reload(UInt16 VendorID, UInt16 ProductID)
    method SetBitMode (line 3346) | public FT_STATUS SetBitMode(byte Mask, byte BitMode)
    method GetPinStates (line 3495) | public FT_STATUS GetPinStates(ref byte BitMode)
    method ReadEEPROMLocation (line 3538) | public FT_STATUS ReadEEPROMLocation(UInt32 Address, ref UInt16 EEValue)
    method WriteEEPROMLocation (line 3581) | public FT_STATUS WriteEEPROMLocation(UInt32 Address, UInt16 EEValue)
    method EraseEEPROM (line 3623) | public FT_STATUS EraseEEPROM()
    method ReadFT232BEEPROM (line 3677) | public FT_STATUS ReadFT232BEEPROM(FT232B_EEPROM_STRUCTURE ee232b)
    method ReadFT2232EEPROM (line 3769) | public FT_STATUS ReadFT2232EEPROM(FT2232_EEPROM_STRUCTURE ee2232)
    method ReadFT232REEPROM (line 3871) | public FT_STATUS ReadFT232REEPROM(FT232R_EEPROM_STRUCTURE ee232r)
    method ReadFT2232HEEPROM (line 3978) | public FT_STATUS ReadFT2232HEEPROM(FT2232H_EEPROM_STRUCTURE ee2232h)
    method ReadFT4232HEEPROM (line 4089) | public FT_STATUS ReadFT4232HEEPROM(FT4232H_EEPROM_STRUCTURE ee4232h)
    method ReadFT232HEEPROM (line 4199) | public FT_STATUS ReadFT232HEEPROM(FT232H_EEPROM_STRUCTURE ee232h)
    method ReadXSeriesEEPROM (line 4316) | public FT_STATUS ReadXSeriesEEPROM(FT_XSERIES_EEPROM_STRUCTURE eeX)
    method WriteFT232BEEPROM (line 4453) | public FT_STATUS WriteFT232BEEPROM(FT232B_EEPROM_STRUCTURE ee232b)
    method WriteFT2232EEPROM (line 4566) | public FT_STATUS WriteFT2232EEPROM(FT2232_EEPROM_STRUCTURE ee2232)
    method WriteFT232REEPROM (line 4689) | public FT_STATUS WriteFT232REEPROM(FT232R_EEPROM_STRUCTURE ee232r)
    method WriteFT2232HEEPROM (line 4820) | public FT_STATUS WriteFT2232HEEPROM(FT2232H_EEPROM_STRUCTURE ee2232h)
    method WriteFT4232HEEPROM (line 4951) | public FT_STATUS WriteFT4232HEEPROM(FT4232H_EEPROM_STRUCTURE ee4232h)
    method WriteFT232HEEPROM (line 5081) | public FT_STATUS WriteFT232HEEPROM(FT232H_EEPROM_STRUCTURE ee232h)
    method WriteXSeriesEEPROM (line 5216) | public FT_STATUS WriteXSeriesEEPROM(FT_XSERIES_EEPROM_STRUCTURE eeX)
    method EEReadUserArea (line 5355) | public FT_STATUS EEReadUserArea(byte[] UserAreaDataBuffer, ref UInt32 ...
    method EEWriteUserArea (line 5414) | public FT_STATUS EEWriteUserArea(byte[] UserAreaDataBuffer)
    method GetDeviceType (line 5473) | public FT_STATUS GetDeviceType(ref FT_DEVICE DeviceType)
    method GetDeviceID (line 5521) | public FT_STATUS GetDeviceID(ref UInt32 DeviceID)
    method GetDescription (line 5567) | public FT_STATUS GetDescription(out string Description)
    method GetSerialNumber (line 5619) | public FT_STATUS GetSerialNumber(out string SerialNumber)
    method GetRxBytesAvailable (line 5671) | public FT_STATUS GetRxBytesAvailable(ref UInt32 RxQueue)
    method GetTxBytesWaiting (line 5713) | public FT_STATUS GetTxBytesWaiting(ref UInt32 TxQueue)
    method GetEventType (line 5758) | public FT_STATUS GetEventType(ref UInt32 EventType)
    method GetModemStatus (line 5803) | public FT_STATUS GetModemStatus(ref byte ModemStatus)
    method GetLineStatus (line 5849) | public FT_STATUS GetLineStatus(ref byte LineStatus)
    method SetBaudRate (line 5894) | public FT_STATUS SetBaudRate(UInt32 BaudRate)
    method SetDataCharacteristics (line 5938) | public FT_STATUS SetDataCharacteristics(byte DataBits, byte StopBits, ...
    method SetFlowControl (line 5982) | public FT_STATUS SetFlowControl(UInt16 FlowControl, byte Xon, byte Xoff)
    method SetRTS (line 6024) | public FT_STATUS SetRTS(bool Enable)
    method SetDTR (line 6082) | public FT_STATUS SetDTR(bool Enable)
    method SetTimeouts (line 6141) | public FT_STATUS SetTimeouts(UInt32 ReadTimeout, UInt32 WriteTimeout)
    method SetBreak (line 6183) | public FT_STATUS SetBreak(bool Enable)
    method SetResetPipeRetryCount (line 6242) | public FT_STATUS SetResetPipeRetryCount(UInt32 ResetPipeRetryCount)
    method GetDriverVersion (line 6284) | public FT_STATUS GetDriverVersion(ref UInt32 DriverVersion)
    method GetLibraryVersion (line 6326) | public FT_STATUS GetLibraryVersion(ref UInt32 LibraryVersion)
    method SetDeadmanTimeout (line 6365) | public FT_STATUS SetDeadmanTimeout(UInt32 DeadmanTimeout)
    method SetLatency (line 6409) | public FT_STATUS SetLatency(byte Latency)
    method GetLatency (line 6462) | public FT_STATUS GetLatency(ref byte Latency)
    method InTransferSize (line 6504) | public FT_STATUS InTransferSize(UInt32 InTransferSize)
    method SetCharacters (line 6553) | public FT_STATUS SetCharacters(byte EventChar, bool EventCharEnable, b...
    method EEUserAreaSize (line 6595) | public FT_STATUS EEUserAreaSize(ref UInt32 UASize)
    method GetCOMPort (line 6636) | public FT_STATUS GetCOMPort(out string ComPortName)
    method VendorCmdGet (line 6694) | public FT_STATUS VendorCmdGet(UInt16 request, byte[] buf, UInt16 len)
    method VendorCmdSet (line 6735) | public FT_STATUS VendorCmdSet(UInt16 request, byte[] buf, UInt16 len)
    method ErrorHandler (line 6833) | private void ErrorHandler(FT_STATUS ftStatus, FT_ERROR ftErrorCondition)

FILE: FT232H SPI ADC/UsbAdc/FTD2XX_NET/SerialCommunicator.cs
  class SerialCommunicator (line 11) | public class SerialCommunicator : CommunicatorBase
    method SetBaudRate (line 14) | public void SetBaudRate(int baudRate = 9600)

FILE: FT232H SPI ADC/UsbAdc/FTD2XX_NET/SpiCommunicator.cs
  class SpiCommunicator (line 5) | internal class SpiCommunicator : CommunicatorBase
    method SetupSPI (line 7) | public void SetupSPI()
    method ReadAdc (line 51) | public int ReadAdc()
    method CsHigh (line 77) | public void CsHigh()
    method CsLow (line 88) | public void CsLow()

FILE: FT232H SPI ADC/UsbAdc/FTD2XX_NET/TwiCommunicator.cs
  class TwiCommunicator (line 7) | internal class TwiCommunicator : CommunicatorBase
    method I2C_ConfigureMpsse (line 9) | public void I2C_ConfigureMpsse()
    method I2C_SetStart (line 62) | public void I2C_SetStart()
    method I2C_SetStop (line 88) | public void I2C_SetStop()
    method I2C_SendDeviceAddr (line 111) | public bool I2C_SendDeviceAddr(byte address, bool read, bool throwOnNA...
    method I2C_ReadByte (line 155) | public byte I2C_ReadByte(bool ACK)
    method I2C_ReadADC (line 198) | public double I2C_ReadADC()
    method I2C_Scan (line 208) | public string[] I2C_Scan()

FILE: FT232H SPI ADC/UsbAdc/Form1.Designer.cs
  class Form1 (line 3) | partial class Form1
    method Dispose (line 14) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 29) | private void InitializeComponent()

FILE: FT232H SPI ADC/UsbAdc/Form1.cs
  class Form1 (line 5) | public partial class Form1 : Form
    method Form1 (line 12) | public Form1()
    method Form1_Load (line 17) | private void Form1_Load(object sender, EventArgs e)
    method btnOpen_Click (line 28) | private void btnOpen_Click(object sender, EventArgs e)
    method timer1_Tick (line 39) | private void timer1_Tick(object sender, EventArgs e)

FILE: FT232H SPI ADC/UsbAdc/Program.cs
  class Program (line 3) | static class Program
    method Main (line 8) | [STAThread]

FILE: FTDI 2017-04-29 bitbang max7219 7seg/FT232H-spi7seg.cs
  class Program (line 11) | class Program
    method Main (line 27) | static void Main(string[] args)
    method DisplayClear (line 59) | static void DisplayClear()
    method DisplayNumber (line 65) | static void DisplayNumber(long val, int decimalPlace=6)
    method SetCharacter (line 80) | static void SetCharacter(int position, int value, bool decimalPoint = ...
    method SendCommand (line 88) | static void SendCommand(byte address, byte value)
    method BufferAddByte (line 96) | static void BufferAddByte(byte value)
    method BufferSend (line 108) | static void BufferSend()

FILE: FTDI 2018-05-30 bit bang/00-serial.cs
  class Program (line 11) | class Program
    method Main (line 17) | static void Main(string[] args)

FILE: FTDI 2018-05-30 bit bang/01-serial.cs
  class Program (line 10) | class Program
    method Main (line 16) | static void Main(string[] args)

FILE: FTDI 2018-05-30 bit bang/02-state-LEDs.cs
  class Program (line 11) | class Program
    method Main (line 17) | static void Main(string[] args)

FILE: FTDI 2018-05-30 bit bang/03-state-LEDblink.cs
  class Program (line 11) | class Program
    method Main (line 17) | static void Main(string[] args)

FILE: FTDI 2018-05-30 bit bang/04-state-send.cs
  class Program (line 11) | class Program
    method Main (line 17) | static void Main(string[] args)

FILE: FTDI 2018-05-30 bit bang/05-stress-test.cs
  class Program (line 10) | class Program
    method Main (line 20) | static void Main(string[] args)

FILE: FTDI 2018-05-30 bit bang/06-bit-bang-spi.cs
  class Program (line 10) | class Program
    method Main (line 21) | static void Main(string[] args)
    method StatesFromByte (line 38) | public static List<byte> StatesFromByte(byte b)
    method StatesFromByte (line 50) | public static List<byte> StatesFromByte(byte[] b)
    method BitBangBytes (line 58) | public static void BitBangBytes(byte[] bytesToSend)

FILE: FTDI 2018-05-30 bit bang/07-AD9850-single-frequency.cs
  class Program (line 10) | class Program
    method Main (line 21) | static void Main(string[] args)
    method ReverseBits (line 54) | public static byte ReverseBits(byte b1)
    method StatesFromByte (line 64) | public static List<byte> StatesFromByte(byte b)
    method StatesFromByte (line 76) | public static List<byte> StatesFromByte(byte[] b)
    method BitBangBytes (line 84) | public static void BitBangBytes(byte[] bytesToSend)

FILE: FTDI 2018-05-30 bit bang/08-AD9850-sweep.cs.cs
  class Program (line 10) | class Program
    method Main (line 21) | static void Main(string[] args)
    method ReverseBits (line 54) | public static byte ReverseBits(byte b1)
    method StatesFromByte (line 64) | public static List<byte> StatesFromByte(byte b)
    method StatesFromByte (line 76) | public static List<byte> StatesFromByte(byte[] b)
    method BitBangBytes (line 84) | public static void BitBangBytes(byte[] bytesToSend)

FILE: FTDI 2018-06-03 ftdiDDS/source/FTDI-video-demo/Program.cs
  class Program (line 10) | class Program
    method Main (line 21) | static void Main(string[] args)
    method ListDevices (line 87) | public static void ListDevices()
    method ShowHelp (line 108) | public static void ShowHelp(bool pause=true)
    method FrequencySweep (line 136) | public static void FrequencySweep(uint ftdiDevice = 0)
    method FrequencySet (line 154) | public static void FrequencySet(int freqTarget = 10_000_000)
    method FrequencySetStable (line 176) | public static void FrequencySetStable(uint ftdiDevice = 0, int freqTar...
    method ReverseBits (line 188) | public static byte ReverseBits(byte b1)
    method StatesFromByte (line 198) | public static List<byte> StatesFromByte(byte b)
    method StatesFromByte (line 210) | public static List<byte> StatesFromByte(byte[] b)
    method BitBangBytes (line 218) | public static void BitBangBytes(byte[] bytesToSend)

FILE: tips/2017-02-04 thermistor calculations/demo.py
  function voltage2temp (line 4) | def voltage2temp(v):
Copy disabled (too large) Download .json
Condensed preview — 540 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (18,354K chars).
[
  {
    "path": ".gitignore",
    "chars": 17,
    "preview": ".vs\nDebug\nRelease"
  },
  {
    "path": "ATMega328  LEDblink/build_atmega328.bat",
    "chars": 207,
    "preview": "@echo off\ndel *.elf\ndel *.hex\navr-gcc -mmcu=atmega328p -Wall -Os -o main.elf main.c -w\navr-objcopy -j .text -j .data -O "
  },
  {
    "path": "ATMega328  LEDblink/fuse_atmega328_int_1MHz.bat",
    "chars": 79,
    "preview": "@echo off\navrdude -c usbtiny -p m328p -U lfuse:w:0x62:m -U hfuse:w:0xd9:m\npause"
  },
  {
    "path": "ATMega328  LEDblink/fuse_atmega328_int_8MHz.bat",
    "chars": 79,
    "preview": "@echo off\navrdude -c usbtiny -p m328p -U lfuse:w:0xe2:m -U hfuse:w:0xd9:m\npause"
  },
  {
    "path": "ATMega328  LEDblink/fuse_atmega328_xtal.bat",
    "chars": 79,
    "preview": "@echo off\navrdude -c usbtiny -p m328p -U lfuse:w:0xf7:m -U hfuse:w:0xd9:m\npause"
  },
  {
    "path": "ATMega328  LEDblink/main.c",
    "chars": 258,
    "preview": "#define F_CPU 11059200\n#include <avr/io.h>\n#include <util/delay.h>\n\nint main(void){\n\tDDRB|=(1<<PB1); // set PD6 (pin 11)"
  },
  {
    "path": "ATMega328  LEDblink/main.hex",
    "chars": 488,
    "preview": ":100000000C9434000C943E000C943E000C943E0082\n:100010000C943E000C943E000C943E000C943E0068\n:100020000C943E000C943E000C943E0"
  },
  {
    "path": "ATMega328 2015-01-01 USART serial/AVR Baud Rate Calculator.url",
    "chars": 59,
    "preview": "[InternetShortcut]\nURL=http://wormfood.net/avrbaudcalc.php\n"
  },
  {
    "path": "ATMega328 2015-01-01 USART serial/readme.md",
    "chars": 2138,
    "preview": "# USART (serial) communication with ATMega328\n\n### TX only\n**[This example](tx%20only/main.c) shows how to send data one"
  },
  {
    "path": "ATMega328 2015-01-01 USART serial/tx only/README.md",
    "chars": 129,
    "preview": "This is a barebones project to send data (even pretty ASCII formatted numbers) to a PC via the serial port.\n\n![](screens"
  },
  {
    "path": "ATMega328 2015-01-01 USART serial/tx only/build_atmega328.bat",
    "chars": 207,
    "preview": "@echo off\ndel *.elf\ndel *.hex\navr-gcc -mmcu=atmega328p -Wall -Os -o main.elf main.c -w\navr-objcopy -j .text -j .data -O "
  },
  {
    "path": "ATMega328 2015-01-01 USART serial/tx only/fuse_atmega328_int_1MHz.bat",
    "chars": 79,
    "preview": "@echo off\navrdude -c usbtiny -p m328p -U lfuse:w:0x62:m -U hfuse:w:0xd9:m\npause"
  },
  {
    "path": "ATMega328 2015-01-01 USART serial/tx only/main.c",
    "chars": 1204,
    "preview": "#define F_CPU 1000000ul\n#include <avr/io.h>\n#include <util/delay.h>\n\n#define USART_BAUDRATE 4800\n#define UBRR_VALUE (((F"
  },
  {
    "path": "ATMega328 2015-01-01 USART serial/tx only/main.hex",
    "chars": 1792,
    "preview": ":100000000C9434000C943E000C943E000C943E0082\n:100010000C943E000C943E000C943E000C943E0068\n:100020000C943E000C943E000C943E0"
  },
  {
    "path": "ATMega328 2015-01-01 USART serial/tx rs set value/build.bat",
    "chars": 208,
    "preview": "@echo off\ndel *.elf\ndel *.hex\navr-gcc -mmcu=atmega328p -Wall -Os -o main.elf main.c -w\navr-objcopy -j .text -j .data -O "
  },
  {
    "path": "ATMega328 2015-01-01 USART serial/tx rs set value/fuse_atmega328_int_1MHz.bat",
    "chars": 79,
    "preview": "@echo off\navrdude -c usbtiny -p m328p -U lfuse:w:0x62:m -U hfuse:w:0xd9:m\npause"
  },
  {
    "path": "ATMega328 2015-01-01 USART serial/tx rs set value/main.c",
    "chars": 2664,
    "preview": "#define F_CPU 1000000ul\n#include <avr/io.h>\n#include <util/delay.h>\n#include <avr/interrupt.h>\n\n#define USART_BAUDRATE 4"
  },
  {
    "path": "ATMega328 2015-01-01 USART serial/tx rs set value/main.hex",
    "chars": 3136,
    "preview": ":100000000C9434000C9451000C9451000C94510049\n:100010000C9451000C9451000C9451000C9451001C\n:100020000C9451000C9451000C94510"
  },
  {
    "path": "ATMega328 2015-01-01 USART serial/tx rx interrupt/build.bat",
    "chars": 208,
    "preview": "@echo off\ndel *.elf\ndel *.hex\navr-gcc -mmcu=atmega328p -Wall -Os -o main.elf main.c -w\navr-objcopy -j .text -j .data -O "
  },
  {
    "path": "ATMega328 2015-01-01 USART serial/tx rx interrupt/fuse_atmega328_int_1MHz.bat",
    "chars": 79,
    "preview": "@echo off\navrdude -c usbtiny -p m328p -U lfuse:w:0x62:m -U hfuse:w:0xd9:m\npause"
  },
  {
    "path": "ATMega328 2015-01-01 USART serial/tx rx interrupt/main.c",
    "chars": 938,
    "preview": "#define F_CPU 1000000ul\n#include <avr/io.h>\n#include <util/delay.h>\n#include <avr/interrupt.h>\n\n#define USART_BAUDRATE 4"
  },
  {
    "path": "ATMega328 2015-01-01 USART serial/tx rx interrupt/main.hex",
    "chars": 940,
    "preview": ":100000000C9434000C9449000C9449000C94490061\n:100010000C9449000C9449000C9449000C9449003C\n:100020000C9449000C9449000C94490"
  },
  {
    "path": "ATMega328 2015-01-01 USART serial/tx rx polling/build.bat",
    "chars": 208,
    "preview": "@echo off\ndel *.elf\ndel *.hex\navr-gcc -mmcu=atmega328p -Wall -Os -o main.elf main.c -w\navr-objcopy -j .text -j .data -O "
  },
  {
    "path": "ATMega328 2015-01-01 USART serial/tx rx polling/fuse_atmega328_int_1MHz.bat",
    "chars": 79,
    "preview": "@echo off\navrdude -c usbtiny -p m328p -U lfuse:w:0x62:m -U hfuse:w:0xd9:m\npause"
  },
  {
    "path": "ATMega328 2015-01-01 USART serial/tx rx polling/main.c",
    "chars": 1017,
    "preview": "#define F_CPU 1000000ul\n#include <avr/io.h>\n#include <util/delay.h>\n\n#define USART_BAUDRATE 4800\n#define UBRR_VALUE (((F"
  },
  {
    "path": "ATMega328 2015-01-01 USART serial/tx rx polling/main.hex",
    "chars": 692,
    "preview": ":100000000C9434000C943E000C943E000C943E0082\n:100010000C943E000C943E000C943E000C943E0068\n:100020000C943E000C943E000C943E0"
  },
  {
    "path": "ATMega328 2016-09-04 SN74LV8154/README.md",
    "chars": 1725,
    "preview": "# Newer Project - USB Counter with SN74lV8154\nThis project became its own GitHub repository:\n* **https://github.com/swha"
  },
  {
    "path": "ATMega328 2016-09-04 SN74LV8154/build_atmega328.bat",
    "chars": 208,
    "preview": "@echo off\ndel *.elf\ndel *.hex\navr-gcc -mmcu=atmega328p -Wall -Os -o main.elf main.c -w\navr-objcopy -j .text -j .data -O "
  },
  {
    "path": "ATMega328 2016-09-04 SN74LV8154/cleaner/build_atmega328.bat",
    "chars": 208,
    "preview": "@echo off\ndel *.elf\ndel *.hex\navr-gcc -mmcu=atmega328p -Wall -Os -o main.elf main.c -w\navr-objcopy -j .text -j .data -O "
  },
  {
    "path": "ATMega328 2016-09-04 SN74LV8154/cleaner/fuse_atmega328_int_1MHz.bat",
    "chars": 79,
    "preview": "@echo off\navrdude -c usbtiny -p m328p -U lfuse:w:0x62:m -U hfuse:w:0xd9:m\npause"
  },
  {
    "path": "ATMega328 2016-09-04 SN74LV8154/cleaner/main.c",
    "chars": 3891,
    "preview": "/*\nThis program interfacs an ATMega328p with an SN74LV8154N (32-bit counter). \nNo interrupts are being used here. We exp"
  },
  {
    "path": "ATMega328 2016-09-04 SN74LV8154/cleaner/main.hex",
    "chars": 3068,
    "preview": ":100000000C9434000C9449000C9449000C94490061\n:100010000C9449000C9449000C9449000C9449003C\n:100020000C9449000C9449000C94490"
  },
  {
    "path": "ATMega328 2016-09-04 SN74LV8154/cleaner/main_minimal.c",
    "chars": 3292,
    "preview": "/*\nThis program interfacs an ATMega328p with an SN74LV8154N (32-bit counter). \nNo interrupts are being used here. We exp"
  },
  {
    "path": "ATMega328 2016-09-04 SN74LV8154/demo.py",
    "chars": 522,
    "preview": "import serial\nimport serial.tools.list_ports\n\nfor potentialPort in list(serial.tools.list_ports.comports()):\n    print(p"
  },
  {
    "path": "ATMega328 2016-09-04 SN74LV8154/kicad/simple-cache.lib",
    "chars": 4656,
    "preview": "EESchema-LIBRARY Version 2.3\n#encoding utf-8\n#\n# ATMEGA168A-P\n#\nDEF ATMEGA168A-P IC 0 40 Y Y 1 F N\nF0 \"IC\" -750 1250 50 "
  },
  {
    "path": "ATMega328 2016-09-04 SN74LV8154/kicad/simple.bak",
    "chars": 6352,
    "preview": "EESchema Schematic File Version 2\nLIBS:power\nLIBS:device\nLIBS:transistors\nLIBS:conn\nLIBS:linear\nLIBS:regul\nLIBS:74xx\nLIB"
  },
  {
    "path": "ATMega328 2016-09-04 SN74LV8154/kicad/simple.kicad_pcb",
    "chars": 51,
    "preview": "(kicad_pcb (version 4) (host kicad \"dummy file\") )\n"
  },
  {
    "path": "ATMega328 2016-09-04 SN74LV8154/kicad/simple.pro",
    "chars": 1442,
    "preview": "update=9/4/2016 8:53:33 PM\nversion=1\nlast_client=kicad\n[pcbnew]\nversion=1\nLastNetListRead=\nUseCmpFile=1\nPadDrill=0.60000"
  },
  {
    "path": "ATMega328 2016-09-04 SN74LV8154/kicad/simple.sch",
    "chars": 6352,
    "preview": "EESchema Schematic File Version 2\nLIBS:power\nLIBS:device\nLIBS:transistors\nLIBS:conn\nLIBS:linear\nLIBS:regul\nLIBS:74xx\nLIB"
  },
  {
    "path": "ATMega328 2016-09-04 SN74LV8154/main.c",
    "chars": 3889,
    "preview": "/*\nThis program interfacs an ATMega328p with an SN74LV8154N (32-bit counter). \nNo interrupts are being used here. We exp"
  },
  {
    "path": "ATMega328 2016-09-04 SN74LV8154/main.hex",
    "chars": 3068,
    "preview": ":100000000C9434000C9449000C9449000C94490061\n:100010000C9449000C9449000C9449000C9449003C\n:100020000C9449000C9449000C94490"
  },
  {
    "path": "ATMega328 2016-09-07 ramp DVM/README.md",
    "chars": 766,
    "preview": "# Capacitor Charge Voltage Measurement\nThe idea behind this project is to measure a voltage by timing how long it takes "
  },
  {
    "path": "ATMega328 2016-09-07 ramp DVM/build.bat",
    "chars": 208,
    "preview": "@echo off\ndel *.elf\ndel *.hex\navr-gcc -mmcu=atmega328p -Wall -Os -o main.elf main.c -w\navr-objcopy -j .text -j .data -O "
  },
  {
    "path": "ATMega328 2016-09-07 ramp DVM/demo data/analyze.py",
    "chars": 320,
    "preview": "import numpy as np\nimport pylab\n\nif __name__==\"__main__\":\n    with open(\"capture.txt\") as f:\n        raw=f.read()\n    va"
  },
  {
    "path": "ATMega328 2016-09-07 ramp DVM/demo data/capture.txt",
    "chars": 152748,
    "preview": "0000119975\n\r0000119974\n\r0000119978\n\r0000119978\n\r0000119979\n\r0000119977\n\r0000119979\n\r0000119980\n\r0000119977\n\r0000119981\n\r"
  },
  {
    "path": "ATMega328 2016-09-07 ramp DVM/kicad/quick ADC-cache.lib",
    "chars": 2208,
    "preview": "EESchema-LIBRARY Version 2.3\n#encoding utf-8\n#\n# C\n#\nDEF C C 0 10 N Y 1 F N\nF0 \"C\" 25 100 50 H V L CNN\nF1 \"C\" 25 -100 50"
  },
  {
    "path": "ATMega328 2016-09-07 ramp DVM/kicad/quick ADC.bak",
    "chars": 3501,
    "preview": "EESchema Schematic File Version 2\nLIBS:power\nLIBS:device\nLIBS:transistors\nLIBS:conn\nLIBS:linear\nLIBS:regul\nLIBS:74xx\nLIB"
  },
  {
    "path": "ATMega328 2016-09-07 ramp DVM/kicad/quick ADC.kicad_pcb",
    "chars": 51,
    "preview": "(kicad_pcb (version 4) (host kicad \"dummy file\") )\n"
  },
  {
    "path": "ATMega328 2016-09-07 ramp DVM/kicad/quick ADC.pro",
    "chars": 1187,
    "preview": "update=9/8/2016 8:21:08 PM\nversion=1\nlast_client=kicad\n[pcbnew]\nversion=1\nLastNetListRead=\nUseCmpFile=1\nPadDrill=0.60000"
  },
  {
    "path": "ATMega328 2016-09-07 ramp DVM/kicad/quick ADC.sch",
    "chars": 3608,
    "preview": "EESchema Schematic File Version 2\nLIBS:power\nLIBS:device\nLIBS:transistors\nLIBS:conn\nLIBS:linear\nLIBS:regul\nLIBS:74xx\nLIB"
  },
  {
    "path": "ATMega328 2016-09-07 ramp DVM/main.c",
    "chars": 2166,
    "preview": "/*\nThis program interfacs an ATMega328p with an SN74LV8154N (32-bit counter). \nNo interrupts are being used here. We exp"
  },
  {
    "path": "ATMega328 2016-09-07 ramp DVM/main.hex",
    "chars": 2276,
    "preview": ":100000000C9434000C9449000C9449000C94490061\n:100010000C9449000C9449000C9449000C9449003C\n:100020000C9449000C9449000C94490"
  },
  {
    "path": "ATMega328 2016-09-15 CVM/README.md",
    "chars": 710,
    "preview": "#  Bluetooth Interface for Panel Current/Ammeter\nThis code uses an ATMega328 to sample the multiplexed display of a chea"
  },
  {
    "path": "ATMega328 2016-09-15 CVM/analysis/captureWarmup.txt",
    "chars": 137213,
    "preview": " 0.02,000.0\n\r 0.02,000.0\n\r 0.02,000.0\n\r 0.02,000.0\n\r 0.02,000.0\n\r 0.02,000.0\n\r 0.02,000.0\n\r 0.02,000.0\n\r 0.02,000.0\n\r 0."
  },
  {
    "path": "ATMega328 2016-09-15 CVM/analysis/graph.py",
    "chars": 1033,
    "preview": "import numpy as np\nimport pylab\n\ndef getData(fname='captureWarmup.txt'):\n    with open(fname) as f:\n        raw=f.read()"
  },
  {
    "path": "ATMega328 2016-09-15 CVM/build.bat",
    "chars": 207,
    "preview": "@echo off\ndel *.elf\ndel *.hex\navr-gcc -mmcu=atmega328p -Wall -Os -o main.elf main.c -w\navr-objcopy -j .text -j .data -O "
  },
  {
    "path": "ATMega328 2016-09-15 CVM/demo.py",
    "chars": 522,
    "preview": "import serial\nimport serial.tools.list_ports\n\nfor potentialPort in list(serial.tools.list_ports.comports()):\n    print(p"
  },
  {
    "path": "ATMega328 2016-09-15 CVM/main.c",
    "chars": 6520,
    "preview": "#define F_CPU 11059200ul\n\n#include <avr/io.h>\n#include <util/delay.h>\n\n#define USART_BAUDRATE 9600\n#define UBRR_VALUE (("
  },
  {
    "path": "ATMega328 2016-09-15 CVM/main.hex",
    "chars": 3776,
    "preview": ":100000000C9434000C9446000C9446000C9446006A\n:100010000C9446000C9446000C9446000C94460048\n:100020000C9446000C9446000C94460"
  },
  {
    "path": "ATMega328 2017-02-07 ADC serial LM35/AVR Baud Rate Calculator.url",
    "chars": 59,
    "preview": "[InternetShortcut]\nURL=http://wormfood.net/avrbaudcalc.php\n"
  },
  {
    "path": "ATMega328 2017-02-07 ADC serial LM35/README.md",
    "chars": 3867,
    "preview": "# Read ADC with ATMega328 (with serial output)\n**This project reads an analog voltage on PC5 (ADC5, pin28) and outputs i"
  },
  {
    "path": "ATMega328 2017-02-07 ADC serial LM35/build_atmega328.bat",
    "chars": 207,
    "preview": "@echo off\ndel *.elf\ndel *.hex\navr-gcc -mmcu=atmega328p -Wall -Os -o main.elf main.c -w\navr-objcopy -j .text -j .data -O "
  },
  {
    "path": "ATMega328 2017-02-07 ADC serial LM35/fuse_atmega328_int_1MHz.bat",
    "chars": 79,
    "preview": "@echo off\navrdude -c usbtiny -p m328p -U lfuse:w:0x62:m -U hfuse:w:0xd9:m\npause"
  },
  {
    "path": "ATMega328 2017-02-07 ADC serial LM35/main.c",
    "chars": 2349,
    "preview": "/*\nThis code reads ADC of PC5 (pin 28) and reports its value\nas a 10-bit number over serial TX pin (pin 3).\n\nSerial sett"
  },
  {
    "path": "ATMega328 2017-02-07 ADC serial LM35/main.hex",
    "chars": 2272,
    "preview": ":100000000C9434000C943E000C943E000C943E0082\n:100010000C943E000C943E000C943E000C943E0068\n:100020000C943E000C943E000C943E0"
  },
  {
    "path": "ATMega328 2017-02-07 ADC serial LM35/main_both.c",
    "chars": 3315,
    "preview": "/*\nThis code reads ADC of PC5 (pin 28) and reports its value\nas a 10-bit number over serial TX pin (pin 3).\n\nSerial sett"
  },
  {
    "path": "ATMega328 2017-02-07 ADC serial LM35/main_simple.c",
    "chars": 2349,
    "preview": "/*\nThis code reads ADC of PC5 (pin 28) and reports its value\nas a 10-bit number over serial TX pin (pin 3).\n\nSerial sett"
  },
  {
    "path": "ATMega328 2017-02-08 i2c LM75A thermometer/build_atmega328.bat",
    "chars": 229,
    "preview": "@echo off\ndel *.elf\ndel *.hex\navr-gcc -mmcu=atmega328p -Wall -Os -o main.elf main.c i2c_master.c -w -std=c99\navr-objcopy"
  },
  {
    "path": "ATMega328 2017-02-08 i2c LM75A thermometer/cmd.cmd",
    "chars": 7,
    "preview": "cmd.exe"
  },
  {
    "path": "ATMega328 2017-02-08 i2c LM75A thermometer/fuse_atmega328_int_1MHz.bat",
    "chars": 79,
    "preview": "@echo off\navrdude -c usbtiny -p m328p -U lfuse:w:0x62:m -U hfuse:w:0xd9:m\npause"
  },
  {
    "path": "ATMega328 2017-02-08 i2c LM75A thermometer/i2c_master.c",
    "chars": 2946,
    "preview": "#ifndef  F_CPU\n#define F_CPU 16000000UL\n#endif\n\n#include <avr/io.h>\n#include <util/twi.h>\n\n#include \"i2c_master.h\"\n\n#def"
  },
  {
    "path": "ATMega328 2017-02-08 i2c LM75A thermometer/i2c_master.h",
    "chars": 597,
    "preview": "#ifndef I2C_MASTER_H\n#define I2C_MASTER_H\n\n#define I2C_READ 0x01\n#define I2C_WRITE 0x00\n\nvoid i2c_init(void);\nuint8_t i2"
  },
  {
    "path": "ATMega328 2017-02-08 i2c LM75A thermometer/main.c",
    "chars": 799,
    "preview": "#define F_CPU 1000000ul\n#include <avr/io.h>\n#include <util/delay.h>\n#include \"serial_m328.c\"\n#include \"i2c_master.c\"\n\nin"
  },
  {
    "path": "ATMega328 2017-02-08 i2c LM75A thermometer/main_01.c",
    "chars": 1669,
    "preview": "#define F_CPU 1000000ul\n#include <avr/io.h>\n#include <util/delay.h>\n#include \"serial_m328.c\"\n\n\nvoid TWIInit(void)\n{\n    "
  },
  {
    "path": "ATMega328 2017-02-08 i2c LM75A thermometer/readme.md",
    "chars": 1614,
    "preview": "# read LM75A I2C temperature sensor with ATMega328\nThis was less trivial than I initially though it would be, but the fi"
  },
  {
    "path": "ATMega328 2017-02-08 i2c LM75A thermometer/serial_m328.c",
    "chars": 1127,
    "preview": "#include <avr/io.h>\n\n#define F_CPU 1000000ul\n\n#define USART_BAUDRATE 4800\n#define UBRR_VALUE (((F_CPU/(USART_BAUDRATE*16"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/build_atmega328.bat",
    "chars": 229,
    "preview": "@echo off\ndel *.elf\ndel *.hex\navr-gcc -mmcu=atmega328p -Wall -Os -o main.elf main.c i2c_master.c -w -std=c99\navr-objcopy"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/data.csv",
    "chars": 31,
    "preview": "# time,freq,temptime,freq,temp\n"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/exp01 - 11.0592/data.csv",
    "chars": 211795,
    "preview": "# time,freq,temptime,freq,temp\n1487722356.71,11062943,28.0\n1487722357.71,11062947,28.0\n1487722358.72,11062944,28.0\n14877"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/exp01 - 11.0592/readme.md",
    "chars": 22,
    "preview": "first stable recording"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/exp02 - 10.140 smaller/data1.csv",
    "chars": 235147,
    "preview": "# time,freq,temptime,freq,temp\n1487730571.95,10141813,32.0\n1487730572.95,10141810,32.0\n1487730573.95,10141813,32.0\n14877"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/exp02 - 10.140 smaller/data2.csv",
    "chars": 217283,
    "preview": "# time,freq,temptime,freq,temp\n1487738980.19,10141761,39.0\n1487738981.19,10141758,39.0\n1487738982.20,10141760,39.0\n14877"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/exp02 - 10.140 smaller/data3.csv",
    "chars": 231899,
    "preview": "# time,freq,temptime,freq,temp\n1487746770.40,10141740,41.5\n1487746771.40,10141738,42.0\n1487746772.40,10141739,41.5\n14877"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/exp03 - longrun/data3.csv",
    "chars": 685723,
    "preview": "# time,freq,temptime,freq,temp\n1487746770.40,10141740,41.5\n1487746771.40,10141738,42.0\n1487746772.40,10141739,41.5\n14877"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/exp04 - 10.140 larger/data.csv",
    "chars": 300975,
    "preview": "# time,freq,temptime,freq,temp\n1487805210.00,10143055,28.0\n1487805211.01,10143053,28.0\n1487805212.01,10143055,28.0\n14878"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/exp05 - attiny2313 internal 8mhz/data.csv",
    "chars": 216760,
    "preview": "# time,freq,temptime,freq,temp\n1487817781.36,8195819,28.5\n1487817782.37,8196410,28.5\n1487817783.35,8195172,28.5\n14878177"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/exp06 - attiny2313 external xtal/data.csv",
    "chars": 890627,
    "preview": "# time,freq,temptime,freq,temp\n1487827142.62,11060944,29.0\n1487827143.63,11060941,29.0\n1487827144.64,11060943,29.0\n14878"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/exp06 - attiny2313 external xtal/datalong.csv",
    "chars": 890627,
    "preview": "# time,freq,temptime,freq,temp\n1487827142.62,11060944,29.0\n1487827143.63,11060941,29.0\n1487827144.64,11060943,29.0\n14878"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/exp07 - attiny2313 external xtal allday/data.csv",
    "chars": 1738215,
    "preview": "# time,freq,temptime,freq,temp\n1487922892.28,11060939,31.5\n1487922893.28,11060941,31.5\n1487922894.28,11060940,31.5\n14879"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/exp07 - attiny2313 external xtal freezer/data.csv",
    "chars": 2306289,
    "preview": "# time,freq,temptime,freq,temp\n1487902601.70,11061049,8.0\n1487902602.71,11061052,8.0\n1487902603.70,11061049,8.0\n14879026"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/exp08a - mcu 2x18pf ceramic/data.csv",
    "chars": 243127,
    "preview": "# time,freq,temptime,freq,temp\n1487995093.28,11060921,30.0\n1487995094.28,11060918,30.0\n1487995095.27,11060921,30.0\n14879"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/exp08b - mcu 2x18 and 2x68 ceramic/data.csv",
    "chars": 839583,
    "preview": "# time,freq,temptime,freq,temp\n1488004058.51,11057085,31.5\n1488004059.51,11057086,31.5\n1488004060.52,11057085,31.5\n14880"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/exp08c - mcu 2x48 blue/data.csv",
    "chars": 304341,
    "preview": "# time,freq,temptime,freq,temp\n1488054464.91,11058336,45.0\n1488054465.92,11058334,45.0\n1488054468.93,11058336,45.0\n14880"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/exp08d - mcu 2x20 npo black tip/data.csv",
    "chars": 70115,
    "preview": "# time,freq,temptime,freq,temp\n1488065657.22,11060359,28.5\n1488065658.23,11060358,28.5\n1488065659.23,11060359,28.5\n14880"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/exp09a - mcu colpitts/data.csv",
    "chars": 1224751,
    "preview": "# time,freq,temptime,freq,temp\n1488103877.25,11060515,32.0\n1488103878.26,11060517,32.0\n1488103879.26,11060515,32.0\n14881"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/exp09a - mcu colpitts all yellow npo/data.csv",
    "chars": 353265,
    "preview": "# time,freq,temptime,freq,temp\n1488148785.55,11060690,27.5\n1488148786.54,11060688,27.5\n1488148787.54,11060690,27.5\n14881"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/exp10 - aj4vd smt oscillator/data.csv",
    "chars": 353265,
    "preview": "# time,freq,temptime,freq,temp\n1488148785.55,11060690,27.5\n1488148786.54,11060688,27.5\n1488148787.54,11060690,27.5\n14881"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/exp11 - aj4vd smt oscillator/data.csv",
    "chars": 2000652,
    "preview": "# time,freq,temptime,freq,temp\n1488163532.96,11060709,27.5\n1488163533.97,11060711,27.5\n1488163534.97,11060709,27.5\n14881"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/exp12 - aj4vd smt oscillator/data.csv",
    "chars": 631235,
    "preview": "# time,freq,temptime,freq,temp\n1488235423.98,10140572,32.0\n1488235424.98,10140570,32.0\n1488235425.98,10140573,32.0\n14882"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/exp13 - xtal only heated/data.csv",
    "chars": 111572,
    "preview": "#time,temperature\n0.222,26.50,11060265\n0.551,26.50,11060267\n0.880,26.50,11060265\n1.583,26.50,11060267\n2.587,26.50,110602"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/fuse_atmega328_int_1MHz.bat",
    "chars": 79,
    "preview": "@echo off\navrdude -c usbtiny -p m328p -U lfuse:w:0x62:m -U hfuse:w:0xd9:m\npause"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/i2c_master.c",
    "chars": 2946,
    "preview": "#ifndef  F_CPU\n#define F_CPU 16000000UL\n#endif\n\n#include <avr/io.h>\n#include <util/twi.h>\n\n#include \"i2c_master.h\"\n\n#def"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/i2c_master.h",
    "chars": 597,
    "preview": "#ifndef I2C_MASTER_H\n#define I2C_MASTER_H\n\n#define I2C_READ 0x01\n#define I2C_WRITE 0x00\n\nvoid i2c_init(void);\nuint8_t i2"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/main.c",
    "chars": 2072,
    "preview": "#define F_CPU 1000000ul\n#include <avr/io.h>\n#include <util/delay.h>\n#include <avr/interrupt.h>\n#include \"i2c_master.h\"\n\n"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/main.hex",
    "chars": 3564,
    "preview": ":100000000C9434000C9449000C9449000C94490061\n:100010000C9449000C9449000C9449000C9449003C\n:100020000C9449000C9449000C94490"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/plot_both.py",
    "chars": 3209,
    "preview": "import numpy as np\nnp.set_printoptions(precision=3, suppress=True)\nimport matplotlib.pyplot as plt\nimport time\n\nSMOOTHBY"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/plot_both2.py",
    "chars": 4431,
    "preview": "import numpy as np\nnp.set_printoptions(precision=3, suppress=True)\nimport matplotlib.pyplot as plt\nimport time\nimport gl"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/plot_temp.py",
    "chars": 1911,
    "preview": "import numpy as np\nnp.set_printoptions(precision=3, suppress=True)\nimport matplotlib.pyplot as plt\nimport time\n\ndef smoo"
  },
  {
    "path": "ATMega328 2017-02-12 crystal turnover inspector/record_both.py",
    "chars": 2074,
    "preview": "\"\"\"this script continuously polls for temperature and saves it as data.csv\"\"\"\n\nimport serial\nimport time\nimport serial.t"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD backpack/main.hex",
    "chars": 488,
    "preview": ":100000000C9434000C943E000C943E000C943E0082\n:100010000C943E000C943E000C943E000C943E0068\n:100020000C943E000C943E000C943E0"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD backpack/readme.md",
    "chars": 425,
    "preview": "# AVR Example using an I2C LCD backpack module\n\nCode here demonstrates how to use a [pcf8574](http://www.ti.com/lit/ds/s"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD backpack/src/build_atmega328.bat",
    "chars": 297,
    "preview": "@echo off\ndel *.elf\ndel *.hex\navr-gcc -mmcu=atmega328p -Wall -Os -DF_CPU=8000000UL -o main.elf main.c uart/uart.c pcf857"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD backpack/src/fuse_atmega328_int_8MHz.bat",
    "chars": 79,
    "preview": "@echo off\navrdude -c usbtiny -p m328p -U lfuse:w:0xe2:m -U hfuse:w:0xd9:m\npause"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD backpack/src/i2chw/i2cmaster.h",
    "chars": 5473,
    "preview": "#ifndef _I2CMASTER_H\n#define _I2CMASTER_H   1\n/*************************************************************************"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD backpack/src/i2chw/twimaster.c",
    "chars": 6017,
    "preview": "/*************************************************************************\n* Title:    I2C master library using hardware"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD backpack/src/lcdpcf8574/lcdpcf8574.c",
    "chars": 13380,
    "preview": "/*\nlcdpcf8574 lib 0x01\n\ncopyright (c) Davide Gironi, 2013\n\nReleased under GPLv3.\nPlease refer to LICENSE file for licens"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD backpack/src/lcdpcf8574/lcdpcf8574.h",
    "chars": 7637,
    "preview": "/*\nlcdpcf8574 lib 0x01\n\ncopyright (c) Davide Gironi, 2013\n\nReleased under GPLv3.\nPlease refer to LICENSE file for licens"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD backpack/src/main.c",
    "chars": 1004,
    "preview": "/*\nlcdpcf8574 lib sample\n\ncopyright (c) Davide Gironi, 2013\n\nReleased under GPLv3.\nPlease refer to LICENSE file for lice"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD backpack/src/main.hex",
    "chars": 7080,
    "preview": ":100000000C9434000C9451000C9451000C94510049\n:100010000C9451000C9451000C9451000C9451001C\n:100020000C9451000C9451000C94510"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD backpack/src/pcf8574/pcf8574.c",
    "chars": 3683,
    "preview": "/*\npcf8574 lib 0x02\n\ncopyright (c) Davide Gironi, 2012\n\nReleased under GPLv3.\nPlease refer to LICENSE file for licensing"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD backpack/src/pcf8574/pcf8574.h",
    "chars": 1228,
    "preview": "/*\npcf8574 lib 0x02\n\ncopyright (c) Davide Gironi, 2012\n\nReleased under GPLv3.\nPlease refer to LICENSE file for licensing"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD backpack/src/uart/uart.c",
    "chars": 20760,
    "preview": "/*************************************************************************\nTitle:    Interrupt UART library with receive"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD backpack/src/uart/uart.h",
    "chars": 7129,
    "preview": "#ifndef UART_H\n#define UART_H\n/************************************************************************\nTitle:    Interr"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/notes.txt",
    "chars": 71,
    "preview": "with bus pirate, I can get pressure with:\n[0xEE 72]\n[0xEE 0]\n[0xEF r:3]"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/readme.md",
    "chars": 285,
    "preview": "This exists so people who are really motivated can poke around the code. It is extremely rough, and not really intended "
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_01_works/build_atmega328.bat",
    "chars": 326,
    "preview": "@echo off\ndel *.elf\ndel *.hex\navr-gcc -mmcu=atmega328p -Wall -Os -DF_CPU=8000000UL -o main.elf main.c uart/uart.c pcf857"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_01_works/fuse_atmega328_int_8MHz.bat",
    "chars": 79,
    "preview": "@echo off\navrdude -c usbtiny -p m328p -U lfuse:w:0xe2:m -U hfuse:w:0xd9:m\npause"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_01_works/i2c2/i2c2_master.c",
    "chars": 2972,
    "preview": "#ifndef  F_CPU\n#define F_CPU 8000000UL\n#endif\n\n#include <avr/io.h>\n#include <util/twi.h>\n\n#include \"i2c2_master.h\"\n\n#def"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_01_works/i2c2/i2c2_master.h",
    "chars": 607,
    "preview": "#ifndef I2C_MASTER_H\n#define I2C_MASTER_H\n\n#define I2C_READ 0x01\n#define I2C_WRITE 0x00\n\nvoid i2c2_init(void);\nuint8_t i"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_01_works/i2chw/i2cmaster.h",
    "chars": 5473,
    "preview": "#ifndef _I2CMASTER_H\n#define _I2CMASTER_H   1\n/*************************************************************************"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_01_works/i2chw/twimaster.c",
    "chars": 6016,
    "preview": "/*************************************************************************\n* Title:    I2C master library using hardware"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_01_works/lcdpcf8574/lcdpcf8574.c",
    "chars": 13380,
    "preview": "/*\nlcdpcf8574 lib 0x01\n\ncopyright (c) Davide Gironi, 2013\n\nReleased under GPLv3.\nPlease refer to LICENSE file for licens"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_01_works/lcdpcf8574/lcdpcf8574.h",
    "chars": 7637,
    "preview": "/*\nlcdpcf8574 lib 0x01\n\ncopyright (c) Davide Gironi, 2013\n\nReleased under GPLv3.\nPlease refer to LICENSE file for licens"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_01_works/main.c",
    "chars": 1840,
    "preview": "#include <avr/io.h>\n#include <stdio.h>\n#include <stdlib.h>\n#include <avr/pgmspace.h>\n#include <avr/interrupt.h>\n#include"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_01_works/main.hex",
    "chars": 9304,
    "preview": ":100000000C9434000C9451000C9451000C94510049\n:100010000C9451000C9451000C9451000C9451001C\n:100020000C9451000C9451000C94510"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_01_works/pcf8574/pcf8574.c",
    "chars": 3683,
    "preview": "/*\npcf8574 lib 0x02\n\ncopyright (c) Davide Gironi, 2012\n\nReleased under GPLv3.\nPlease refer to LICENSE file for licensing"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_01_works/pcf8574/pcf8574.h",
    "chars": 1228,
    "preview": "/*\npcf8574 lib 0x02\n\ncopyright (c) Davide Gironi, 2012\n\nReleased under GPLv3.\nPlease refer to LICENSE file for licensing"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_01_works/uart/uart.c",
    "chars": 20760,
    "preview": "/*************************************************************************\nTitle:    Interrupt UART library with receive"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_01_works/uart/uart.h",
    "chars": 7129,
    "preview": "#ifndef UART_H\n#define UART_H\n/************************************************************************\nTitle:    Interr"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_02_clean/build_atmega328.bat",
    "chars": 326,
    "preview": "@echo off\ndel *.elf\ndel *.hex\navr-gcc -mmcu=atmega328p -Wall -Os -DF_CPU=8000000UL -o main.elf main.c uart/uart.c pcf857"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_02_clean/calibration/calibrate.py",
    "chars": 1244,
    "preview": "\"\"\"\nUse program memory of a MS5611 temperature / pressure sensor to create\na calculation to approximate pressure (in PSI"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_02_clean/fuse_atmega328_int_8MHz.bat",
    "chars": 79,
    "preview": "@echo off\navrdude -c usbtiny -p m328p -U lfuse:w:0xe2:m -U hfuse:w:0xd9:m\npause"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_02_clean/i2c2/i2c2_master.c",
    "chars": 2972,
    "preview": "#ifndef  F_CPU\n#define F_CPU 8000000UL\n#endif\n\n#include <avr/io.h>\n#include <util/twi.h>\n\n#include \"i2c2_master.h\"\n\n#def"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_02_clean/i2c2/i2c2_master.h",
    "chars": 607,
    "preview": "#ifndef I2C_MASTER_H\n#define I2C_MASTER_H\n\n#define I2C_READ 0x01\n#define I2C_WRITE 0x00\n\nvoid i2c2_init(void);\nuint8_t i"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_02_clean/i2chw/i2cmaster.h",
    "chars": 5473,
    "preview": "#ifndef _I2CMASTER_H\n#define _I2CMASTER_H   1\n/*************************************************************************"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_02_clean/i2chw/twimaster.c",
    "chars": 6017,
    "preview": "/*************************************************************************\n* Title:    I2C master library using hardware"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_02_clean/lcdpcf8574/lcdpcf8574.c",
    "chars": 13380,
    "preview": "/*\nlcdpcf8574 lib 0x01\n\ncopyright (c) Davide Gironi, 2013\n\nReleased under GPLv3.\nPlease refer to LICENSE file for licens"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_02_clean/lcdpcf8574/lcdpcf8574.h",
    "chars": 7637,
    "preview": "/*\nlcdpcf8574 lib 0x01\n\ncopyright (c) Davide Gironi, 2013\n\nReleased under GPLv3.\nPlease refer to LICENSE file for licens"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_02_clean/main.c",
    "chars": 4533,
    "preview": "#include <avr/io.h>\n#include <stdio.h>\n#include <stdlib.h>\n#include <avr/pgmspace.h>\n#include <avr/interrupt.h>\n#include"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_02_clean/main.hex",
    "chars": 25552,
    "preview": ":100000000C9434000C9451000C9451000C94510049\n:100010000C9451000C9451000C9451000C9451001C\n:100020000C9451000C9451000C94510"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_02_clean/pcf8574/pcf8574.c",
    "chars": 3683,
    "preview": "/*\npcf8574 lib 0x02\n\ncopyright (c) Davide Gironi, 2012\n\nReleased under GPLv3.\nPlease refer to LICENSE file for licensing"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_02_clean/pcf8574/pcf8574.h",
    "chars": 1228,
    "preview": "/*\npcf8574 lib 0x02\n\ncopyright (c) Davide Gironi, 2012\n\nReleased under GPLv3.\nPlease refer to LICENSE file for licensing"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_02_clean/uart/uart.c",
    "chars": 20760,
    "preview": "/*************************************************************************\nTitle:    Interrupt UART library with receive"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_i2cLCD_02_clean/uart/uart.h",
    "chars": 7129,
    "preview": "#ifndef UART_H\n#define UART_H\n/************************************************************************\nTitle:    Interr"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_serial/build_atmega328.bat",
    "chars": 229,
    "preview": "@echo off\ndel *.elf\ndel *.hex\navr-gcc -mmcu=atmega328p -Wall -Os -o main.elf main.c i2c_master.c -w -std=c99\navr-objcopy"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_serial/i2c_master.c",
    "chars": 2986,
    "preview": "#ifndef  F_CPU\n#define F_CPU 1000000UL\n#endif\n\n#include <avr/io.h>\n#include <util/twi.h>\n\n#include \"i2c_master.h\"\n\n#defi"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_serial/i2c_master.h",
    "chars": 597,
    "preview": "#ifndef I2C_MASTER_H\n#define I2C_MASTER_H\n\n#define I2C_READ 0x01\n#define I2C_WRITE 0x00\n\nvoid i2c_init(void);\nuint8_t i2"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_serial/main.c",
    "chars": 1568,
    "preview": "#define F_CPU 1000000ul\n#include <avr/io.h>\n#include <util/delay.h>\n\n#define USART_BAUDRATE 4800\n#define UBRR_VALUE (((F"
  },
  {
    "path": "ATMega328 2017-03-19 i2c LCD pressure sensor/src_serial/main.hex",
    "chars": 3620,
    "preview": ":100000000C9434000C943E000C943E000C943E0082\n:100010000C943E000C943E000C943E000C943E0068\n:100020000C943E000C943E000C943E0"
  },
  {
    "path": "ATMega328 2017-08-14 action potential generator/build_atmega328.bat",
    "chars": 207,
    "preview": "@echo off\ndel *.elf\ndel *.hex\navr-gcc -mmcu=atmega328p -Wall -Os -o main.elf main.c -w\navr-objcopy -j .text -j .data -O "
  },
  {
    "path": "ATMega328 2017-08-14 action potential generator/fuse_atmega328_int_8MHz.bat",
    "chars": 79,
    "preview": "@echo off\navrdude -c usbtiny -p m328p -U lfuse:w:0xe2:m -U hfuse:w:0xd9:m\npause"
  },
  {
    "path": "ATMega328 2017-08-14 action potential generator/ltspice/idea-1.asc",
    "chars": 2195,
    "preview": "Version 4\nSHEET 1 880 680\nWIRE 112 -192 -16 -192\nWIRE 240 -192 192 -192\nWIRE 240 -144 240 -192\nWIRE -368 64 -368 0\nWIRE "
  },
  {
    "path": "ATMega328 2017-08-14 action potential generator/main.c",
    "chars": 1492,
    "preview": "#define F_CPU 11059200\n#include <avr/io.h>\n#include <util/delay.h>\n\nvoid LED_ON(){PORTB|=(1<<PB1);}\nvoid LED_OFF(){PORTB"
  },
  {
    "path": "ATMega328 2017-08-14 action potential generator/main.hex",
    "chars": 2656,
    "preview": ":100000000C9434000C9449000C9449000C94490061\n:100010000C9449000C9449000C9449000C9449003C\n:100020000C9449000C9449000C94490"
  },
  {
    "path": "ATMega328 2017-08-14 action potential generator/readme.md",
    "chars": 214,
    "preview": "# Analog Action Potential Generator\nThis project creates action-potential-like waveforms entirely in software. See the p"
  },
  {
    "path": "ATMega328 2018-02-25 16-bit pwm/readme.md",
    "chars": 1669,
    "preview": "# 16-bit PWM on ATMega328\n\n## Quickstart\n\n```C\nvoid SetupPWM(){\n\t// 16-bit timer timer for 100 Hz, ~200 us pulses (when "
  },
  {
    "path": "ATMega328 2018-02-25 nrf24L01/readme.md",
    "chars": 1534,
    "preview": "# Getting nrf24l01 / nrf24l01+ Running on ATMega328P\nI got a lot of benefit from [kehribar's nrf24L01_plus project](kehr"
  },
  {
    "path": "ATMega328 2018-02-25 nrf24L01/src/build_rx.bat",
    "chars": 210,
    "preview": "@echo off\ndel *.elf\ndel *.hex\navr-gcc -mmcu=atmega328p -Wall -Os -o main.elf main_rx.c -w\navr-objcopy -j .text -j .data "
  },
  {
    "path": "ATMega328 2018-02-25 nrf24L01/src/build_tx.bat",
    "chars": 210,
    "preview": "@echo off\ndel *.elf\ndel *.hex\navr-gcc -mmcu=atmega328p -Wall -Os -o main.elf main_tx.c -w\navr-objcopy -j .text -j .data "
  },
  {
    "path": "ATMega328 2018-02-25 nrf24L01/src/fuse_atmega328_int_8MHz.bat",
    "chars": 79,
    "preview": "@echo off\navrdude -c usbtiny -p m328p -U lfuse:w:0xe2:m -U hfuse:w:0xd9:m\npause"
  },
  {
    "path": "ATMega328 2018-02-25 nrf24L01/src/kehribar-nrf24L01_plus- Portable nrf24L01+ library with auto acknowledgement and auto retransmission support-.url",
    "chars": 65,
    "preview": "[InternetShortcut]\nURL=https://github.com/kehribar/nrf24L01_plus\n"
  },
  {
    "path": "ATMega328 2018-02-25 nrf24L01/src/main.hex",
    "chars": 3916,
    "preview": ":100000000C9434000C9451000C9451000C94510049\n:100010000C9451000C9451000C9451000C9451001C\n:100020000C9451000C9451000C94510"
  },
  {
    "path": "ATMega328 2018-02-25 nrf24L01/src/main_rx.c",
    "chars": 1313,
    "preview": "/*\n    RECEIVER - use a nrf24L01 to receive data from a TX to indicate which LEDs to light.\n    LEDs are on PD5, PD6, an"
  },
  {
    "path": "ATMega328 2018-02-25 nrf24L01/src/main_tx.c",
    "chars": 1719,
    "preview": "/*\n    TRANSMITTER - use a nrf24L01 to send data to the RX.\n    Two LEDs are connected to PD6 (green) and PD7 (red) whic"
  },
  {
    "path": "ATMega328 2018-02-25 nrf24L01/src/nRF24L01.h",
    "chars": 3593,
    "preview": "/*\n    Copyright (c) 2007 Stefan Engelke <mbox@stefanengelke.de>\n\n    Permission is hereby granted, free of charge, to a"
  },
  {
    "path": "ATMega328 2018-02-25 nrf24L01/src/nrf24.c",
    "chars": 8795,
    "preview": "/*\n* ----------------------------------------------------------------------------\n* “THE COFFEEWARE LICENSE” (Revision 1"
  },
  {
    "path": "ATMega328 2018-02-25 nrf24L01/src/nrf24.h",
    "chars": 4231,
    "preview": "/*\n* ----------------------------------------------------------------------------\n* “THE COFFEEWARE LICENSE” (Revision 1"
  },
  {
    "path": "ATMega328 2018-02-25 nrf24L01/src/radioPinFunctions.c",
    "chars": 2527,
    "preview": "/*\n* ----------------------------------------------------------------------------\n* “THE COFFEEWARE LICENSE” (Revision 1"
  },
  {
    "path": "ATMega328 2018-04-22 MAX7219 LED matrix/build_atmega328.bat",
    "chars": 207,
    "preview": "@echo off\ndel *.elf\ndel *.hex\navr-gcc -mmcu=atmega328p -Wall -Os -o main.elf main.c -w\navr-objcopy -j .text -j .data -O "
  },
  {
    "path": "ATMega328 2018-04-22 MAX7219 LED matrix/fuse_atmega328_int_8MHz.bat",
    "chars": 79,
    "preview": "@echo off\navrdude -c usbtiny -p m328p -U lfuse:w:0xe2:m -U hfuse:w:0xd9:m\npause"
  },
  {
    "path": "ATMega328 2018-04-22 MAX7219 LED matrix/fuse_atmega328_xtal.bat",
    "chars": 79,
    "preview": "@echo off\navrdude -c usbtiny -p m328p -U lfuse:w:0xf7:m -U hfuse:w:0xd9:m\npause"
  },
  {
    "path": "ATMega328 2018-04-22 MAX7219 LED matrix/main.c",
    "chars": 4080,
    "preview": "/*\n\ndisplays data from a matrix\n\n*/\n\n#define F_CPU 8000000\n#include <avr/io.h>\n#include <util/delay.h>\n\n#define nCols 32"
  },
  {
    "path": "ATMega328 2018-04-22 MAX7219 LED matrix/main.hex",
    "chars": 4904,
    "preview": ":100000000C9434000C9451000C9451000C94510049\n:100010000C9451000C9451000C9451000C9451001C\n:100020000C9451000C9451000C94510"
  },
  {
    "path": "ATMega328 2018-04-22 MAX7219 LED matrix/main_01_works.c",
    "chars": 2652,
    "preview": "/*\n\ndemonstrates how to illuminate a single point on the LED matrix\n\nhttps://github.com/dhepper/font8x8/blob/master/font"
  },
  {
    "path": "ATMega328 2018-04-22 MAX7219 LED matrix/main_02_matrix.c",
    "chars": 2484,
    "preview": "/*\n\ndemonstrates a matrix-like effect using rand ()\n\n*/\n#define F_CPU 8000000\n#include <avr/io.h>\n#include <util/delay.h"
  },
  {
    "path": "ATMega328 2018-04-22 MAX7219 LED matrix/main_03_scott.c",
    "chars": 4080,
    "preview": "/*\n\ndisplays data from a matrix\n\n*/\n\n#define F_CPU 8000000\n#include <avr/io.h>\n#include <util/delay.h>\n\n#define nCols 32"
  },
  {
    "path": "ATMega328 2018-04-22 MAX7219 LED matrix/readme.md",
    "chars": 272,
    "preview": "# MAX7219 LED Matrix\n\nThis folder contains demo files showing how to get an AVR (ATMega328P) to control a MAX7219-based "
  },
  {
    "path": "ATMega328 2019-06-20 TTL laser controller 2/README.md",
    "chars": 1728,
    "preview": "# 4-Channel TTL Laser Controller\n* This project describes a laser controller which takes a computer-controlled 28V diffe"
  },
  {
    "path": "ATMega328 2019-06-20 TTL laser controller 2/main.c",
    "chars": 2721,
    "preview": "/* \n * ATMega328P - 4 channel laser controller\n * \n * Read inputs on pins 2-5 (PD0-PD3)\n * Produce modulated output on p"
  },
  {
    "path": "ATMega328 2019-06-20 TTL laser controller 2/main.hex",
    "chars": 1988,
    "preview": ":100000000C9434000C9451000C9451000C94510049\n:100010000C9451000C9451000C9451000C9451001C\n:100020000C9451000C9451000C94510"
  },
  {
    "path": "ATMega328 2019-06-20 TTL laser controller 2/program.bat",
    "chars": 874,
    "preview": ":: ATMEGA328P COMPILE (AVG-GCC) AND PROGRAM (AVRDUDE/USBTINY) SCRIPT\n:: by Scott Harden / Harden Technologies, LLC\n\n@ech"
  },
  {
    "path": "ATMega328 2019-06-20 TTL laser controller 2/setFuses.bat",
    "chars": 190,
    "preview": "::  microcontroller: ATMega328P\n::     clock source: external crystal (>8MHz, 65ms startup time)\n::     clock output: di"
  },
  {
    "path": "ATMega328 2019-07-05 USB counter/readme.md",
    "chars": 60,
    "preview": "This project is now: https://github.com/swharden/USB-Counter"
  },
  {
    "path": "ATMega328 2019-08-04 max7219 7segment display/compile.bat",
    "chars": 147,
    "preview": "DEL main.elf\nDEL main.hex\navr-gcc -mmcu=atmega328p -std=c99 -Wall -Os -o main.elf main.c -w\navr-objcopy -j .text -j .dat"
  },
  {
    "path": "ATMega328 2019-08-04 max7219 7segment display/display-max7219-7seg.c",
    "chars": 1328,
    "preview": "\nvoid SpiInitialize(void)\n{\n\tDDRB |= (1 << PB5); // set SCK as output\n\tDDRB |= (1 << PB3); // set MOSI as output\n\tDDRB |"
  },
  {
    "path": "ATMega328 2019-08-04 max7219 7segment display/main.c",
    "chars": 238,
    "preview": "#define F_CPU 14745600L\n#include <avr/io.h>\n#include <util/delay.h>\n\n#include \"display-max7219-7seg.c\"\n\nint main(void)\n{"
  },
  {
    "path": "ATMega328 2019-08-04 max7219 7segment display/main.hex",
    "chars": 1500,
    "preview": ":100000000C9434000C943E000C943E000C943E0082\n:100010000C943E000C943E000C943E000C943E0068\n:100020000C943E000C943E000C943E0"
  },
  {
    "path": "ATMega328 2019-08-04 max7219 7segment display/program.bat",
    "chars": 202,
    "preview": "DEL main.elf\nDEL main.hex\navr-gcc -mmcu=atmega328p -std=c99 -Wall -Os -o main.elf main.c -w\navr-objcopy -j .text -j .dat"
  },
  {
    "path": "ATMega328 2019-08-04 max7219 7segment display/readme.md",
    "chars": 2572,
    "preview": "# ATMega328 7-Segment Display Module\n\nThis project documents how to drive max7219 7-segment display modules with an ATMe"
  },
  {
    "path": "ATMega48 2013-05-14 SHRFP monitor/GUI/SH-RFP-monitor.py",
    "chars": 960,
    "preview": "import ui_plot\r\n\r\nimport sys\r\n\r\nfrom SwhRecorder import *\r\n\r\nfrom PyQt4 import QtCore, QtGui\r\n\r\ndef updateData():\r\n    p"
  }
]

// ... and 340 more files (download for full content)

About this extraction

This page contains the full source code of the swharden/AVR-projects GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 540 files (16.8 MB), approximately 4.4M tokens, and a symbol index with 1038 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!