Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

project:tinymega [2013/01/08 21:10]
79.233.251.38 [Dokumentation]
project:tinymega [2013/04/12 10:33] (aktuell)
193.110.102.2 [Hello World für den TinyMega]
Zeile 194: Zeile 194:
   - TinyMega mit dem PC verbinden   - TinyMega mit dem PC verbinden
   - Taste BOOT drücken (und gedrückt halten)   - Taste BOOT drücken (und gedrückt halten)
-  - Taste RESET drücken (und wider loslassen)+  - Taste RESET drücken (und wieder loslassen)
   - Taste BOOT loslassen   - Taste BOOT loslassen
  
Zeile 227: Zeile 227:
  sudo $(AVR_PROGRAMMER) $(AVR_CHIP) flash $<  sudo $(AVR_PROGRAMMER) $(AVR_CHIP) flash $<
  sudo $(AVR_PROGRAMMER) $(AVR_CHIP) start ; true</file>  sudo $(AVR_PROGRAMMER) $(AVR_CHIP) start ; true</file>
 +
 +====Testprogramm für die I/O-Pins====
 +
 +Das folgende Testprogramm lässt die LED per Interrupt blinken und schaltet alle weiteren Pins auf HIGH. Um die Pins zu testen, kann eine beliebige LED mit Vorwiderstand (180 Ohm) mit der Kathode an den GND-Pin des TinyMega angeschlossen und mit der Anode an alle anderen Pins gehalten werden. Die LED sollte bei allen Pins aufleuchten, ausser bei E6 (wo sie natürlich blinkt ,), bei E2 (das haben wir schon durch den Bootloader-Taster getestet), bei VREF (das kann so nicht getestet werden) und bei RST (das wird aber einen Reset auslösen, weil die LED durch den Vorwiderstand den Reset-Pin auf Ground zieht).
 +
 +<file>#include <avr/io.h>
 +#include <avr/power.h>
 +#include <avr/interrupt.h>
 +
 +#define LEDDDR DDRE
 +#define LEDPORT PORTE
 +#define LEDBIT (1 << PE6)
 +
 +ISR(TIMER1_COMPA_vect)
 +{
 + LEDPORT ^= LEDBIT;
 +}
 +
 +int main(void)
 +{
 + clock_prescale_set(clock_div_1);
 +
 + /* Timer/Counter 1 für Interrupts aufsetzen */
 + TCCR1A = 0;
 + TCCR1B = 5 << CS10 | 1 << WGM12;
 + OCR1A = 8192;
 + TIMSK1 = 1 << OCIE1A;
 + TIFR1 = 1 << OCF1A;
 +
 + MCUCR = 1 << JTD;  /* JTAG abschalten, sonst funktionieren */
 + MCUCR = 1 << JTD;  /* einige Pins von PORTF nicht wie erwartet */
 + DDRB = DDRC = DDRD = DDRF = 0xFF;
 + PORTB = PORTC = PORTD = PORTF = 0xFF;
 + LEDDDR = LEDBIT;
 +
 + sei();
 +
 + while (1);
 +}</file>
  
 ====Linksammlung==== ====Linksammlung====
   * [[http://www.radiolocman.com/shem/schematics.html?di=112213|Atmega32U4 RAW HID Device]]   * [[http://www.radiolocman.com/shem/schematics.html?di=112213|Atmega32U4 RAW HID Device]]
   * [[http://fourwalledcubicle.com/LUFA.php|Lufa USB-Libary]]   * [[http://fourwalledcubicle.com/LUFA.php|Lufa USB-Libary]]
project/tinymega.1357675824.txt.gz · Zuletzt geändert: 2013/01/08 21:10 von 79.233.251.38