user:avr:antons_minne
Table of Contents
Antons minnesanteckningar
Mall
#include <avr/io.h> int main(void) { // Initiera funktioner o dyl. for(;;) { // Programkörning } }
Includes
#include <avr/io.h> //AVR device-specific IO definitions #include <util/delay.h> //Convenience functions for busy-wait delay loops
Pins
Input/Output
Sätta pinnar som output/input, hanteras med register DDRx och PORTx.
DDRx | PORTx | I/O | Pull-up | Comment |
---|---|---|---|---|
0 | 0 | Input | Nej | Tri-state |
0 | 1 | Input | Ja | |
1 | 0 | Output | Nej | Sink |
1 | 1 | Output | Nej | Source |
Ex:
// Sätta pinne PB0 som utgång. DDRB |= (1<<PB0); // Sätta pinne PB0 som ingång med pullup. PORTB |= (1<<PB0);
Set Pin
Ex: Sätta pinne PD2 som utgång och hög.
DDRD |= (1<<PD2); // Sätt pinne som utgång. PORTD |= (1<<PD2); // Sätt pinne som source/hög.
Clr Pin
Ex: Sätta pinne PD2 låg.
PORTD &= ~(1<<PD2);
Toggle Pin
Ex: Toggla pinne PD0
PORTD ^= (1<<PD0);
Read Pin
Ex: Läsa pinne PB2
state = PINB & (1<<PB2); // Jämföra if( PINB & (1<<PB2) ) { // Gör något om pinnen är hög. } else { // Annars, gör något annat. }
user/avr/antons_minne.txt · Last modified: 2018/04/04 23:44 by 127.0.0.1