AVR Embedded Tutorials: what changed
Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.
Title: AVR Embedded Tutorials
| Old | New | Line | |
|---|---|---|---|
| 1 | + | ## Contents | |
| 2 | + | ||
| 3 | + | * 1 AVR embedded tutorials | |
| 4 | + | * 2 Set up cross compiler/IDE | |
| 5 | + | * 3 AVR programming examples | |
| 6 | + | * 4 AVR tutorials | |
| 7 | + | * 4.1 Software | |
| 8 | + | * 4.2 Hardware | |
| 9 | + | * 4.3 Communication | |
| 10 | + | * 4.4 External modules | |
| 11 | + | * 5 See also | |
| 12 | + | ||
| 13 | + | ## AVR embedded tutorials | |
| 14 | + | ||
| 15 | + | This is an overview of tutorials for programming AVR microcontrollers with Free Pascal and Lazarus. This includes various ATtiny and ATmega microcontrollers. Most of the examples also run on an Arduino with an ATmega; especially the Uno/Nano. The Arduino-Mega can also be programmed. Basically, all AVR microcontrollers are programmed more or less the same way. Usually only the registers differ a little. | |
| 16 | + | ||
| 17 | + | ## Set up cross compiler/IDE | |
| 18 | + | ||
| 19 | + | Building the cross compiler and setting up the Lazarus IDE: | |
| 20 | + | ||
| 21 | + | * [[AVR Embedded Tutorial - Entry Lazarus and Arduino|Getting started Lazarus and Arduino (Uno/Nano)]] \- How do I set up Lazarus to program an Arduino (AVR - Cross compiler). | |
| 22 | + | * [[AVR Embedded Tutorial - Set up Lazarus for ATmega and ATTiny|Set up Lazarus for ATtiny and ATmega]] \- Lazarus cross compilation for additional Arduino/AVRs. | |
| 23 | + | * Tool for creating and modifying AVR/Arduino projects: [Embedded GUI Package](<https://github.com/sechshelme/Lazarus-Embedded/tree/master/Lazarus_Embedded_GUI_Package>) \- sechshelme (external link). | |
| 24 | + | * [[AVR Embedded Tutorial - Various programmers|Various programmers]] \- hardware connections to flash the AVR. | |
| 25 | + | ||
| 26 | + | ## AVR programming examples | |
| 27 | + | ||
| 28 | + | * [sechshelme examples](<https://github.com/sechshelme/Lazarus-Embedded>) (external) | |
| 29 | + | * [crrause examples](<https://github.com/ccrause/fpc-avr>) (external) | |
| 30 | + | ||
| 31 | + | ## AVR tutorials | |
| 32 | + | ||
| 33 | + | ### Software | |
| 34 | + | ||
| 35 | + | * [[AVR Programming]] \- Important basics and special features for programming AVR. | |
| 36 | + | * [[AVR Embedded Tutorial - Library|Libraries]] \- Units in AVR programming. | |
| 37 | + | * [[AVR Embedded Tutorial - Delays|Delay]] \- Waiting routines (delay/sleep). | |
| 38 | + | * [[AVR Embedded Tutorial - Multiplex|Multiplex]] \- Multiplex based on a 4-digit 7-segment display. | |
| 39 | + | * [[AVR Embedded Tutorial - Int to digits|Integer to digits]] \- Output an integer to digits (7-segment display). | |
| 40 | + | * [[AVR Embedded Tutorial - Random|Random Number Generator]] \- A random number generator is quite complex on an AVR. | |
| 41 | + | ||
| 42 | + | ### Hardware | |
| 43 | + | ||
| 44 | + | * [[AVR Embedded Tutorial - Simple GPIO on and off output|GPIO - Out / In]] \- How do I access the GPIO on the AVR? | |
| 45 | + | * [[AVR Embedded Tutorial - GPIO-Interrupt|GPIO - Interrupt]] \- Use of GPIO interrupts and pin change. | |
| 46 | + | * [[AVR Embedded Tutorial - Timer, Counter|Timers/Counters]] \- Use of hardware timers. | |
| 47 | + | * [[AVR Embedded Tutorial - Analog Write|Analog Write/PWM]] \- Analog output using pulse width modulation (PWM) | |
| 48 | + | * [[AVR Embedded Tutorial - Analog Read|Analog Read]] \- Read the analog pin. | |
| 49 | + | * [[AVR Embedded Tutorial - EEPROM|EEPROM]] \- Save and read data to/from an EEPROM. | |
| 50 | + | ||
| 51 | + | ### Communication | |
| 52 | + | ||
| 53 | + | * [[AVR Embedded Tutorial - UART|UART]] \- Serial input and output via UART (COM port). | |
| 54 | + | * [[AVR Embedded Tutorial - SPI|SPI]] \- Use of the hardware SPI interface with an ATmega328 / Arduino. | |
| 55 | + | * [[AVR Embedded Tutorial - SPI-Slave|SPI slave]] \- Use SPI as a slave. | |
| 56 | + | * [[AVR Embedded Tutorial - I²C, TWI|I²C / TWI]] \- Communication with I²C / TWI, hardware controlled. | |
| 57 | + | * [[AVR Embedded Tutorial - Software I2C, TWI|Software I²C/TWI]] \- Communication with I²C / TWI, software controlled. | |
| 58 | + | ||
| 59 | + | ### External modules | |
| 60 | + | ||
| 61 | + | * [[AVR Embedded Tutorial - Shiftregister|Shift registers]] \- How do I control shift registers? | |
| 62 | + | * [[AVR Embedded Tutorial - I²C EEPROM|Control I²C EEPROM]] \- I²C EEPROM (24LC256). | |
| 63 | + | * [[AVR Embedded Tutorial - I²C External-Clock|I²C external clock]] \- External clock module DS3231. | |
| 64 | + | * [[AVR Embedded Tutorial - SPI Shiftregister|SPI shift register]] \- Control a 74HC595 shift register via SPI. | |
| 65 | + | * [[AVR Embedded Tutorial - SPI MCP4922|Control SPI MCP4922]] \- Control 12-bit DAC MCP4922 via SPI. | |
| 66 | + | * [[AVR Embedded Tutorial - ADS1115|ADS1115]] \- Control the 16-bit converter ADC1115 via I²C. | |
| 67 | + | ||
| 68 | + | ## See also | |
| 69 | + | ||
| 70 | + | * [[AVR]] \- Cross compiler with make | |
| 71 | + | * [[AVR Programming]] \- Important basics and special features for programming AVR Embedded/Arduino | |
| 72 | + | * [[Arduino]] \- Communication with an Arduino | |
| 73 | + | * [[ARM Embedded Tutorials]] \- Tutorials for ARM Embedded/STM32 and Raspberry Pi Pico/RP2040. | |
| 74 | + | ||
| 75 | + | --- | |
| 76 | + | *From the Free Pascal wiki, page "AVR Embedded Tutorial", as the Internet Archive kept it on 2024-07-14. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).* |
