Forum: Mikrocontroller und Digitale Elektronik Tutorials für Atmega64-16AU ?


von ABSimon (Gast)


Lesenswert?

Hallo Zusammen,

ich habe ein Testplatine mit einem ATMEGA64-16AU,
programmiert kann diese mit dem STK 500.

Gibt es irgendwo im Internet gute Tutorials,
mit Beispielscripten (z.B. bzgl. Interrupts) etc.
für diesen Chip. (oder notfalls auch ein Buch?)

Das Detailwissen für diesen Chip fehlt mir.
Ansonsten komme ich mit C ganz gut zurecht
Außerhalb von Mikrocontrollern :-)

Über Hilfe würde ich mich sehr freuen.

Vielen Dank & Viele Grüße
ABSimon

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Du kannst Dir das AVR-Tutorial hier auf der Seite angucken. Viele der 
dort gemachten Aussagen treffen auch auf den ATMega64 zu. Den Rest kann 
man sich aus den Datenblättern zusammenreimen, die man ohnehin braucht.

von ABSimon (Gast)


Lesenswert?

Hallo,

hatte ich schon gefunden, nur leider ist das keine C Programmierung.

Trotzdem Danke & Viele Grüße

von Michael K. (mmike)


Lesenswert?

In dem Tutorial ist sehr viel in C:

http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

Grüße,
Michael

von ABSimon (Gast)


Lesenswert?

Hi,

danke, hatte jetzt nur in dem AVR Tutorial unter Interrupt geschaut.
eine Frage, ich brauche eigentlich nur einen ADC Interrupt und habe 
diese
Code gefunden als Vorlage.
1
#include <avr\io.h>
2
#include <avr\interrupt.h>
3
4
// Global variables
5
char adc_data;
6
7
setup_adc(){
8
 SREG = SREG | 0x80;
9
 ADMUX = (1<<REFS0)|(1<<ADLAR);
10
 ADCSRA = ADCSRA | (1<<ADEN)| (1<<ADIE)| (1<<ADPS2)| (1<<ADPS1)|           (1<<ADPS0);
11
}
12
13
void ini_pwm(){
14
 TCCR0 = (1<<WGM00)|(1<<WGM01)|(1<<COM01)|(1<<CS00);
15
}
16
17
SIGNAL(SIG_ADC){ //ADC EOC interrupt
18
 adc_data = ADCH;
19
 ADCSRA = ADCSRA | (1<<ADSC); //re start conversion
20
}
21
22
// ***********************************************************
23
// Main program
24
// ***********************************************************
25
int main(void) {
26
 DDRB = DDRB | (1<<PB3); //set PB3 as output.
27
 DDRA = DDRA | (0<<PA0); //set PA0 as Input.
28
29
 setup_adc(); //setup the ADC
30
31
 ini_pwm();
32
33
 ADCSRA = ADCSRA | (1<<ADSC); //start ADC conversion
34
35
 while(1) { // Infinite loop
36
  OCR0 = adc_data;
37
 }
38
}

Würde der so auch auf einem Atmega64 funktionieren.
Quelle ist http://www.ikalogic.com/tut_8051_to_avr.php

In den Datenblätter vom 64 habe ich jetzt keine Codebeispiel
gefunden, um in Erfahrung zu bringen ob
SIGNAL(SIG_ADC), setup_adc() etc. anders formuliert werden
muß.

Falls die Frage, saudoof ist, sorry, so genau genau
weiß nicht wie ich an gewünschte Infos komme. Etwas
viel Neuland.

Viele Grüße
ABSimon

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.