Forum: Mikrocontroller und Digitale Elektronik Atmega16 mit C über Pollin Evaluationsboard V2.0


von Tom (Gast)


Lesenswert?

Hallo µC-Spezialisten,

ich möchte mir langsam das Programmieren von µC beibringen.

Folgendes Zubehör habe ich:

- Pollin Evaluationsboard V2.0
- AVR Studio 4
- WinAVR
- Pony Prog

Nun hab ich gestern begonnen das AVR GCC Tutorial dieser Website 
durchzuarbeiten.

Meine Vorgehensweise war folgende:
Ich hab das kleine Einführungsbeispiel in AVR Studio 4 (New Project, AVR 
GCC, usw.) eingetippt, kompiliert und mit Hilfe dieser Software eine 
.hex Datei erstellt. Diese hab ich dann mit Pony Prog geöffnet und über 
die Serielle Schnittstelle an das Board geschickt. Laut Pony Prog hat 
alles funktioniert. Auf dem Controller war davor auch ein Mini-Programm 
(Taster 1 ==> LED1), welches nun nicht mehr läuft. Folglich hat der 
Controller irgendetwas gefressen. Jedoch sind die im Tutorial 
beschriebenen Werte nicht zu messen (PB0 und PB1 auf high, der Rest von 
PB auf Low)


Kann mir jemand bzgl. meinem Problem weiterhelfen?
Super wären kleine C-Codes die zu diesem Board passen, die Funktionieren 
und auf die ich nach und nach aufbauen kann.

Vielen Dank im Voraus für Eure Hilfe

Tom

von Elektro G. (e_g)


Lesenswert?

hast du die Fusebits richtig gesetzt?

von Elektro G. (e_g)


Lesenswert?

ansonsten poste doch mal dein Prog

von Tom (Gast)


Lesenswert?

Folgendes Mini-Programm:

#include <avr/io.h>

int main(void)
{
DDRB = 0xff;
PORTB = 0x03;

while(1)
{
;
}

return 0;
}

Das Programm hängt ja eigentlich nur in der Schleife und setzt PB0 und 
PB1. Leider wie gesagt nicht messbar.

Die angesprochenen Fuse-Bits hab ich natürlich nicht beachtet. Kannst Du 
mir da weiterhelfen?

von Elektro G. (e_g)


Lesenswert?

Lese mit ponyprog mal deine Fusebits aus und mache ein screenprint und 
Poste das Bild dann.

von Tom (Gast)


Angehängte Dateien:

Lesenswert?

Anbei der Screenshot

von Tom (Gast)


Lesenswert?

Wie gesagt:

ich bin jedem dankbar, der sich in den Chat einbringt und mir 
weiterhelfen kann.

von Henk (Gast)


Lesenswert?

Hey, Tom!

Leider nutze ich AVRStudio nicht, aber wenn ich mir das ansehe, würde 
ich sagen, es hängt genau da. Denn das Programm sieht gut aus. An den 
Fuses kannst du noch folgendes ändern: HAKEN bei CKSEL0 und CKSEL1, 
damit ist der ext. Quarz als Quelle gewählt, im Moment läuft er mit 
internem RC.
Das hat allerdings nichts mit Deinem Problem zu tun.
Um zu sehen, ob Pony artig war, kannst du ja einfach nach dem Flashen 
den Chip auslesen. Eine Äbweichung würdest Du dann sehen.
Ich denke aber wie gesagt, dass bei den Einstellungen vom Studio 
irgendwas schiefgelaufen ist.
Mach das ganze doch mal mit WinAVR, dann hast Du die Fehlerquelle 
eingegrenzt.

Groeten, Jeroen

von Karl H. (kbuchegg)


Lesenswert?

Henk wrote:
> Hey, Tom!
>
> Leider nutze ich AVRStudio nicht, aber wenn ich mir das ansehe, würde
> ich sagen, es hängt genau da.

So ein Quatsch.
Das Programm ist in keinster Weise zeitkritisch.

> Denn das Programm sieht gut aus.

Das stimmt allerdings

> An den
> Fuses kannst du noch folgendes ändern: HAKEN bei CKSEL0 und CKSEL1,

NICHT!
Im PonyProg ist externer Quarz: KEIN Haken bei CKSEL0 bis CKSEL3

von Hubert.G (Gast)


Lesenswert?

Überlege dir gut was du mit den Haken bei den Fuses anrichtest. Jetzt 
ist auf Quarz gestellt nicht auf internen RC-Oszillator. Siehe auch 
hier: http://palmavr.sourceforge.net/cgi-bin/fc.cgi
Ein Haken ist nämlich 0 und kein Haken ist 1, das ist verwirrend und 
daher mit Vorsicht zu geniessen.
Hubert

von Henk (Gast)


Lesenswert?

>NICHT!
>Im PonyProg ist externer Quarz: KEIN Haken bei CKSEL0 bis CKSEL3

Da hat er recht, der gute Mann. Ooops : )

von Florian (Gast)


Lesenswert?

Hallo

@Tom

hast du in AVR Studio den Richtigen Kontroller eingestellt
sonst bringt dir das [#include <avr/io.h>] absolut nichts.

bezüglich dem Pollin bord kenn ich mich leider nicht aus

Aber stell nicht den Externen Quarz ein sollange du dich nicht 
auskennst. Wenn dann irrgendwas an der HW nicht passt kannst du den uC 
ganichtmehr progen, zumindest nicht mit deinen Mitteln.

ach ja und probier einfach mal einen aderen PORT aus

mfg Flo

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Das Datenblatt zum Pollin Atmel Evaluations-Board Version 2.0 gibt es 
hier:
http://www.pollin.de/shop/downloads/D810038B.PDF

Grundsätzlich kann man beim Atmega16 PB0 und PB1 so schalten, wie du es 
in deinem Programm probierst. Diese Portpins sind General-IO fähig.

Bist du sicher, dass du beim Nachmessen (an J4 vom Board ?) die 
richtigen Pins (9 oder 10 gegen z.B. 39 (GND)) abgreifst?

von Maxim (Gast)


Lesenswert?

1
#include <avr/io.h>
2
3
int main(void)
4
{
5
DDRD = 0xff;
6
PORTD = 0b01100000;
7
8
while(1)
9
{
10
;
11
}
12
13
return 0;
14
}

Versuch es mal damit. Leuchten die LEDs?

von Tom (Gast)


Lesenswert?

Vielen vielen Dank für die Resonanz!!

zu Euer aller Information: Es funktioniert immer noch nichts!

@Flo
die Häkchen müssten eigentlich passen. Und ich gehe ernsthaft davon aus, 
dass die HW absolut i. O. ist. Es wurde ja schon mal damit gearbeitet. 
Nur nicht von mir. Und ja, im AVR-Studio ist der atmega16 eingestellt, 
jedoch keine Frequency.


@Stefan B.
...ja, ich hab richtig gemessen.


@Maxim
Ich hab auch diesen Quellcode getestet. Funktioniert auch nicht.

von Tom (Gast)


Lesenswert?

Kommando zurück!!

Es funktioniert. Ich hab nur eine kleine Einstellung ignoriert.

Danke einstweilen für Eure Unterstüztung.


Wenn noch jemand die Muse hat, mir noch mehr zu helfen:

Ich bin auf der Suche nach Idiotensicheren Quellcodes (gut kommentiert) 
die ganz Primitiv diverse I/O´s ansprechen und vor allem: Auf die ich 
aufbauen kann und durch Veräderung einfach Erfahrung sammeln kann.

Wäre cool.

Gruß

Tom

von Troll B. (blaubeer)


Lesenswert?

Tom wrote:
> Kommando zurück!!
>
> Es funktioniert. Ich hab nur eine kleine Einstellung ignoriert.

Darf man nachfragen, welche Einstellung fehlerhaft war und das Problem 
verursacht hat? Es könnte Jemandem helfen, der sonst morgen mit dem 
gleichen Problem kommt.

> Ich bin auf der Suche nach Idiotensicheren Quellcodes (gut kommentiert)
> die ganz Primitiv diverse I/O´s ansprechen und vor allem: Auf die ich
> aufbauen kann und durch Veräderung einfach Erfahrung sammeln kann.

Die findest Du im Datenblatt des AVRs. Zu jedem AVR-Feature ist ein 
kommentierter Beispielcode in ASM und C vorhanden. Dort hast Du auch 
noch den Vorteil, dass die Features (Timer, Interrupts, ADC, usw.) des 
AVRs sehr genau erklärt werden.

Und wenn das nicht reicht, findest Du bei Atmel auf der HP noch jede 
Menge AVR-Appnotes, die den Umgang mit dem AVR anhand kleiner 
Code-Beispiele in ASM oder C erklären.

Das GCC-Tutorial dieser Webseite hier soll auch ganz gut sein.

In der Codesammlung (ein Forum hier) findest Du jede Menge gut erklärte 
und diskutierte Codebeispiele in ASM und C.

>
> Wäre cool.

Du musst also niemanden darum bitten, es ist alles schon da, Du brauchst 
Dich nur noch zu bedienen. Also herunterladen, lesen, verstehen, 
anwenden.

>
> Gruß
>
> Tom

MFG, Blaubär

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.