This is the version 5e417c217da8f0fd52703094 from 2020-02-10 15:52:01 comment: 'circuits'
AVR ATMega ed
Mikrocontroller programmieren... hier ein ATMega8a über Linux.
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
Voraussetzungen ed
ISP-Stick ed
http://www.ehajo.de/baus%C3%A4tze/programmieradapter/avr-isp-stick.html
(unter Links gibt es Anleitungen)
Software ed
zu installieren:
- gcc-avr
- avr-libc
- avrdude
make ed
...noch nicht angeschaut... einfach standard Makefile genommen... erzeugt eine .hex Datei
beschreiben ed
sudo avrdude -p m8 -U flash:w::i -P usb -c usbtiny
- -p m8 wählt den ATMega8 aus
- -c usbtiny wählt den ISP-Stick zum Senden aus
Pins ed
digitale Ausgänge ed
#include <avr/io.h>
int main (void)
{
DDRB = 0xFF;
PORTB = 0x03;
while(1)
{
}
return 0;
}
Register:
Name Bits Bedeutung DDRA 8 Richtung des PortA (0=Eingang, 1=Ausgang) DDRB 8 ... DDRC 8 ... DDRD 8 ... PORTA 8 Ausgabe PortA (Pull-Up-Widerstände, falls Eingang) PINA 8 Eingabe PortA
digitale Eingänge ed
#include <avr/io.h>
int main (void)
{
DDRB = 0x00;
PORTB = 0xff;
while(1)
{
if ((PINB & 0x01) > 0)
{
}
}
return 0;
}
Register:
Name Bits Bedeutung DDRA 8 Richtung des PortA (0=Eingang, 1=Ausgang) DDRB 8 ... DDRC 8 ... DDRD 8 ... PORTA 8 Pull-Up-Widerstände an/aus PINA 8 Eingabe PortA
analoger Eingang ed
Register:
ADCSRA 8 AD Control/Status ADEN 1 7) Enable ADSC 1 6) Start ADFR 1 5) Free Running ADIF 1 4) Interrupt Flag ADIE 1 3) Interrupt Enable ADPS2 1 2) Prescaler (Takt) ADPS1 1 1) ADPS0 1 0) ADMUX 8 ... REFS1 1 7) Referenz Spannung... REFS0 1 6) 01 = AVCC ADLAR 1 5) Left Adjust MUX0-4 1 0-4) PortA Pin Index ADCW 16 Daten
ein paar Funktionen ed
loop_until_bit_is_set(PIN, BIT) loop_until_bit_is_clear(PIN, BIT) _delay_ms(MS) _delay_us(US)
Categories: Computer