Stoppt die Vorratsdatenspeicherung! Jetzt klicken && handeln!Willst du auch bei der Aktion teilnehmen? Hier findest du alle relevanten Infos und Materialien:
 
Grundschaltung und erstes Programm (mit XP)
von Plapperkatze am 9.Mai 2007 um 17:16
zurück zur Kategorie "Tutorials"

Hier nun eine kleine Grundschaltung mit einem 5V-Spannungsregler, einem Atmega8, dem Anschluss für den Programmieradapter und eine LED:


Um den Controller nun programmieren zu können, gibt es verschiedene Software. Ich verwende das AVR-Studio, mit dem in Assembler (und C, siehe unten) programmiert werden kann. Die Software ist kostenlos bei Atmel zu bekommen, man muss sich allerdings seit kurzem registrieren: http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725
Um in C zu programmieren, benötigt man noch WinAVR, hier zu finden: http://winavr.sourceforge.net/
AVR-Studio erzeugt eine Hex-Datei, die dann mit PonyProg (PonyProg2000 für XP!) in den Controller geschrieben werden kann. PonyProg gibt es hier:
http://www.lancos.com/prog.html (download: http://www.lancos.com/e2p/V2_05/ponyprogV205a.zip )
PonyProg gibt es übrigens auch für Linux-Distributionen (RedHat7.0 + Kernel 2.4.x).

LED blinken lassen
1. AVR-Studio starten, "new Project" wählen
2. "Atmel AVR Assembler" wählen und einen Projektnamen (z.B. blinkLED) wählen
3. "AVR Simulator" und "Atmega8" selektieren, "Finish" anklicken
4. In das nun geöffnete Textfenster kommt nun der Code.

  .NOLIST                
  .INCLUDE <m8def.inc>
  .LIST                    

  .def temp   = r20
 
  .CSEG                    
  .org 0

  ; Interupt Vektoren
  rjmp    init           ; Reset Handler
  reti                   ; IRQ0 Handler
  reti                   ; IRQ1 Handler
  reti                   ; Timer2 Compare Handler
  reti                   ; Timer2 Overflow Handler
  reti                   ; Timer1 Capture Handler
  reti                   ; Timer1 CompareA Handler
  reti                   ; Timer1 CompareB Handler
  reti                   ; Timer1 Overflow Handler
  reti                   ; Timer0 Overflow Handler
  reti                   ; SPI Transfer Complete Handler
  reti                   ; USART RX Complete Handler
  reti                   ; UDR Empty Handler
  reti                   ; USART TX Complete Handler
  reti                   ; ADC Conversion Complete Handler
  reti                   ; EEPROM Ready Handler
  reti                   ; Analog Comparator Handler
  reti                   ; Two-wire Serial Interface Handler
  reti                   ; Store Program Memory Ready Handler

init:
;Stackpointer
  ldi temp, LOW(RAMEND)
  out SPL, temp
  ldi temp, HIGH(RAMEND)
  out SPH, temp
;Aus/Eingänge

  ldi temp, (1)
  out DDRB, temp                  ; Port B0 als Ausgang

Main: ;----------------------------- Einsprungspunkt Main

  ldi temp,   (1)
  out PORTB,  temp                ; Ausgang auf HIGH

  rcall wait

  ldi temp,   (0)      
  out PORTB,  temp                ; Ausgang auf LOW
 
  rcall wait

   rjmp Main

wait:                           ; etwa eine Sekunde warten @ 1Mhz
         ldi  R17, 5
WGLOOP0:  ldi  R18, 255
WGLOOP1:  ldi  R19, 255
WGLOOP2:  dec  R19
         brne WGLOOP2
         dec  R18
         brne WGLOOP1
         dec  R17
         brne WGLOOP0
         nop
         ret

5. Wenn ihr mit "Build->Build" kompiliert habt (F7 geht auch) sollte ein "Assembly complete, 0 errors. 0 warnings" erscheinen. Hier ist das Hexfile: http://katze.dead-men.de/upload/57_blink.hex
6. PonyProg2000 öffnen. Ein schönes Tutorial zur Verwendung findet sich unter
http://www.talentraspel.de/portal/index.php?id=112&type=1 deshalb werde ich nicht alles explizit erklären.
Kurzanleitung:
-unter Device "AVR micro" und "Atmega8" auswählen
-bei "Setup->Interface Setup" Parallel, LPT1 und AVR ISP I/O wählen
-"Probe" sollte, wenn der Programmieradapter richtig aufgebaut und angeschlossen würde, "Test OK" liefern
-Das Controllerboard an 6-20V anschliessen (ideal etwa 7V am Eingang des 7805) und mit dem Adapter verbinden
-mit "File->Open Program (FLASH) file" den oben erzeugten Hex-Code laden
-"Command->Write Program (FLASH)" wählen, um das Programm in den Atmega zu übertragen, Aktion bestätigen.
7. Wenn alles richtig aufgebaut wurde, sollte ein "Write successful" angezeigt werden, und die LED zu blinken beginnen. Wenn kein Quarz angeschlossen wurde, läuft ein (neuer) Atmega8 mit internem 1MHz Takt, und die LED blinkt etwa alle 2 Sekunden.

gruesse von der katze

zurück zur Kategorie "Tutorials"
[1 Kommentare]

cH3s73r schrieb am 9. Mai 2007 um 19:37
Wow

Name


Kommentar




Bitte abtippen


 
(C) 2006-20012 Plapperkatze - 215314 Besucher seit dem 23.01.2012 Login