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). | 
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!|
================================================
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.

================================================
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.

***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))


_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

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

This is the output on my scope

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
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
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. \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.