Reset eines ATMEGA16

(Firma: TravelRec.) Persönliche Seite #747237
Lesenswert?
• ▲
▼
Mit ´nem kondensator? Nö. Der ATMEGA führt einen Power-On-Reset aus. 
Zusätzlich kann man über spezielle programmierbare Bits (Fuses) einen 
internen Brown-Out-Detektor aktivieren, der bei Unterschreiten eines 
einstellbaren Spannungspegels einen Reset auslöst. Der Watchdog löst, 
wenn aktiviert, einen Reset aus, wenn er vom internen Programm nicht 
mehr gelöscht wird, weil sich das Programm aufgehängt hat. Letztlich 
wird ein Reset durch herunterziehen der Reset-Leitung auf logisch 0 
ausgelöst, die im Controller über einen internen Widerstand auf logisch 
1 gehalten wird.
Gast #747430
Lesenswert?
• ▲
▼
Hoffe, Du hast mich nicht falsch verstanden!
Finde es super, dass Du Dich in so jungen Jahren schon dafür begeistern 
kannst!
Weißt Du, die meisten Leute, die ich kenne haben erst im Studium was von 
der Programmiererei gehört und da auch nicht sofort verstanden. Aber mit 
der entsprechenden Hilfe ging's auch. Da wird es Dir nicht anders gehen. 
Die Frage ist nur, wo Du Hilfe herbekommen kannst.
Habt ihr Informatik in der Schule? Wenn ja, frag den Lehrer. Dafür sind 
die doch da!
Ansonsten gibt's Bücher, das Internet, dieses Forum,...
OP #747641
Lesenswert?
• ▲
▼
Wir haben Informatik aber keine wirklichen Informatiklehrer,
also nur welche die selber noch keine Lehrer sin und die haben keine 
Zeit für so etwas.
Also will ich es jetzt selber versuchen und hab mir zum ausprobieren das 
STK500 gekauft.
hoffe das es mir was bringt.Weil ansich hab ich schon ziemlich viel 
ahnung was elektronik betrifft aber Programmieren is halt was neues für 
mich
aber danke das du dir so die Zeit für meine Fragen nimmst
#747666
Lesenswert?
• ▲
▼
@ Timo Teske (killerbiene007)

>Vielleicht ne sehr dumme Frage aber es würde mir erheblich weiterhelfen
>wenn mir jemand nen Schaltplan geben könnte wie ich den ATMEGA16
>betreiben kann sprich Reset,Betriebsspannung...

AVR-Tutorial

Tu dir und uns einen Gefallen. Lies das Tutorial. In Ruhe. Kauf dir drei 
ATmeg8. Darauf ist das gesamte Tutorial ausgelegt. Einfacher gehts 
nimmer. Den Mega16 brauchst du im Moment noch nicht.

MfG
Falk
#747709
Lesenswert?
• ▲
▼
@ Timo Teske (killerbiene007)

>is wahrscheinlich erstmal sinnvoll das ich des programmieren lerne,oder
>wie hast du angefangen

Ist lange her, hab ich vergessen ;-)
Nee, im Ernst, ich hab wie viele andere mit BASIC angefangen, damals auf 
KC85/3, der C64 des Ostens ;-)
Später dann Pascal, Assembler auf dem Amiga mit 68000er (R.I.P.).
Prinzipiell ist es sicher sinnvoll,erstmal ein paar Grundstrukturen der 
Programmierung zu lernen, ehe man an Hardware geht. Macht weniger 
Probleme Allerdings kann man schon ein paar kleine Sachen machen (LEDs, 
Taster etc.) um ein paar Erfolgserlebnisse zu haben.

>>Tu dir und uns einen Gefallen. Lies das ...

>wenn du mir nich helfen willst dann lass es halt

Darum geht es nicht. Ich wollte dir damit nur sagen, wie du (und alle 
anderen auch) prinzipiell vorgehen sollten.

ERST selber suchen/lesen/probieren
Wenns dann wirklich nicht geht fragen

Denn nur allzuoft sind Leute zu faul und zu dämlich, mal ein paar 
einfache Dinge selber zu suchen, die auch gar nicht schwer zu finden 
sind.

Und das Form ist NICHT dazu da, das kleine 1x1 immer wieder vorzukauen, 
Dazu gibt es die Wikiartikel und Tutorials sowie Bücher und den Rest vom 
Internet. Das Forum soll bei konkreten Problemen Hilfe bieten.

MfG
Falk
Persönliche Seite #748084
Lesenswert?
• ▲
▼
Hehe... naja prinzipiell ist es schon aehnlich. Allerdings hast Du kein 
Betriebssystem, das Dir abstraktion schafft und nur sehr begrenzte I/O- 
und demnach auch Debugging-Moeglichkeiten. Als Anfaenger machst Du es 
Dir damit nicht gerade leichter. Deswegen solltest Du erstmal die 
Grundbegriffe an einem PC lernen, das Wissen laesst sich dann leicht auf 
die Mikrocontroller uebertragen, aber die Architekturunterschiede 
sollten Dir natuerlich auch klar sein.

Lg,
Michael
#748119
Lesenswert?
• ▲
▼
@  Michael G. (linuxgeek)

>trotzdem, gleich C zu lernen, kannst es ja gleich richtig machen ;)

Da kann man auch gleich einem Kleinkind eine 45er Mangnum in die Hand 
geben, geladen, gespannt und entsichert. :-(

Absoluten Anfängern würde ich nicht C empfehlen, auch nicht Assembler. 
BASIC ist schon OK, für AVRs halt BASCOM. Man will ja auch ein paar 
Erfolgserlebnisse und nicht nur tonnenweise trockenen Stoff und tierisch 
Insiderkram.

MfG
Falk
Persönliche Seite #748124
Lesenswert?
• ▲
▼
Falk Brunner wrote:
> @  Michael G. (linuxgeek)
>
>>trotzdem, gleich C zu lernen, kannst es ja gleich richtig machen ;)
>
> Da kann man auch gleich einem Kleinkind eine 45er Mangnum in die Hand
> geben, geladen, gespannt und entsichert. :-(

Haben Revolver Sicherungsmechanismen? Das waere mir neu... ;) Solange er 
nicht in meine Richtung zielt ist es wohl OK. Aber Scherz beiseite, der 
Punkt ist doch, dass er Mikrocontroller programmieren will und wenn man 
so low level arbeiten will muss man halt das Drumherum mit aufziehen. 
Deswegen sag ich ja dass er erstmal am PC anfangen soll.

>
> Absoluten Anfängern würde ich nicht C empfehlen, auch nicht Assembler.
> BASIC ist schon OK, für AVRs halt BASCOM. Man will ja auch ein paar
> Erfolgserlebnisse und nicht nur tonnenweise trockenen Stoff und tierisch
> Insiderkram.
>
> MfG
> Falk

Genau dass der Jung dann so geschaedigt is, dass er ueberhaupt kein 
strukturiertes Programmieren gelernt hat ;) Ich erinner mich noch an den 
BASIC-Dialekt der C-Control, grauenvoll... :p
#748132
Lesenswert?
• ▲
▼
@ Michael G. (linuxgeek)

>Haben Revolver Sicherungsmechanismen? Das waere mir neu... ;) Solange er

Ala Sledge Hammer: "Vertrauen Sie mir, ich weiss was ich tue.  Autsch!"

>Deswegen sag ich ja dass er erstmal am PC anfangen soll.

Meine Rede.

>Genau dass der Jung dann so geschaedigt is, dass er ueberhaupt kein
>strukturiertes Programmieren gelernt hat ;) Ich erinner mich noch an den

Ich war auch geschädigt als ich auf Pascal umsteigen sollte. Programme 
ohne Goto? Wie soll das denn gehen? ;-)
Aber BASSIC != BASIC. Es gibt auch gute Beispiele.

MfG
Falk
#748138
Lesenswert?
• ▲
▼
krase wrote:
> Ein Atmega kann sich auch in Software selbst resetten.
> Einfach den Watchdog aktivieren und anschliessend warten, bis der
> Watchdog auslöst:
>
> WDTCR = (1<<WDE);
> while(1) __asm__("nop");

Da ein Timer bei mir einen Interrupt auslöst in dem der Watchdog 
bestätigt wird, würde das so nicht gehen. Ich schalte beim Aufruf in die 
Reset-Routine einfach alle Interrupts ab (8051). Dann startet er auch 
neu...
#748180
Lesenswert?
• ▲
▼
@ Michael G. (linuxgeek)

>nicht kenne ;) Was ist denn Deiner Meinung nach der grosse Vorteil von
>BASIC?

Der Anfänger wird nciht mit zuviel nötigem Wissen überfordert.

Print "Hello World!"
Print messwert
Input zahl

ist wesentlich einfacher als

printf("Hello World\n");
printf(("Messwert.%2.4f",messwert);
scanf("%d",&zahl);

Wenn es um die Ausgabe von variablen geht oder erst recht um die Eingabe 
dann wird noch WESENTLICH kompizierter. Und gerade die freie 
Pointerhandhabung in C ist alles andere als anfängertauglich. Bei BASIC 
fängt der Compiler/interpreter die meisten Fehler ab. In C schmiert das 
Programm sang und klanglos ohne Hinweis ab, wenn man mal wieder den Wert 
mit Pointern verwechselt hat. Google mal nach "How to shoot yourself in 
the foot". C ist da ganz oben.
Pascal wäre ein Alternative zu BASIC, ist aber nicht mehr ganz 
zeitgemäss und damit schlecht verfügbar.

MfG
Falk
Persönliche Seite #748195
Lesenswert?
• ▲
▼
Irgendwo hast Du schon recht, die Pointerarithmetik in C ist ein 
Knackpunkt aber auch ein Feature wenn man so systemnah arbeitet. Man 
kann am Anfang Pointer aber auch weitgehend meiden, so ist es ja nicht. 
BASIC schafft Dir halt schneller Erfolgserlebnisse weil man schneller 
was hinpfuschen kann damit, ob das aber so vorteilhaft fuer den 
Anfaenger ist sei mal dahingestellt. Gerade da neight man zu 
"funktioniert, muss passen so". Wenn man sich mit den Grundlagen befasst 
hat laeuft man weniger Gefahr, gewisse Fehler zu machen.

Aber Timo, wenn Du BASIC lernen willst, nur zu, aber dann bin ich nicht 
Dein Ansprechpartner ;) Da musste dann zu Falk gehen hehe.
#748199
Lesenswert?
• ▲
▼
@ Michael G. (linuxgeek)

>Irgendwo hast Du schon recht, die Pointerarithmetik in C ist ein
>Knackpunkt aber auch ein Feature wenn man so systemnah arbeitet. Man

Es ist ein offenes Messer! Und das ist bei weitem nicht alles!

>was hinpfuschen kann damit, ob das aber so vorteilhaft fuer den

In C kann ich auch mordsmässig pfuschen.

>Aber Timo, wenn Du BASIC lernen willst, nur zu, aber dann bin ich nicht
>Dein Ansprechpartner ;) Da musste dann zu Falk gehen hehe.

Wer sich zu wichtig ist für kleine Aufgaben, ist zu klein für wichtige 
Aufgaben.

;-)
Falk
Gast #748741
Lesenswert?
• ▲
▼
Hi,

aus eigener Erfahrung:

ich würd Basic (Bascom) nehmen. Warum? Bvor du mit C auch nur ein 
Programm compiliert hast (fehlerfrei) hast du die Lust verloren und 
schmeißt alles in die Ecke.

Basic ist viel selbsterklärender wie C. Bei C wirst du dich häufig 
fragen "Was macht das Programm da?" "Warum macht man das Programm da 
so?".

Wenn du mit Basic anfängst wirst du sehr schnell Erfolge haben die dich 
ermutigen weiter zu machen.
Wenn Basic dann klappt, kannst du auf C umsteigen. Dann wirst du mehr 
über den Mikrocontroller wissen und mehr übers programieren. Sprich, C 
ist dann einfacher zu erlernen.
Wenn es dich dann ganz gepackt hat das µController Fieber kannste auf 
Assembler umsteigen.

Der Mensch machts ja auch so. Erst Dreirad fahren. Da fällt man nicht 
um. Dann Fahrrad, weil da stirbt man (meist) nicht wenn man gegen eine 
Wand fährt. Und zum Schluss dann Auto.

Woher ich das weis? Ich mach seit 3 Jahren mit Atmels rum. Mittlerweile 
bekomm ich das hin was ich will. Am Anfang hab ich aber fast alles 
hingeschmissen, weil ich mich mehr mit C und Assembler rumgeärgert hab 
als mit dem was ich machen wollte. Dann kam Bascom (Basic für Atmels) 
und die Welt war wieder in Ordnung :-)

Grüße, Bernd
#748789
Lesenswert?
• ▲
▼
Mein Tipp:

Fang auf dem PC mit was BASIC-Ähnlichem an (Z.B. Visual Basic, da gibt's 
auch tolle kostenlose Entwicklungsumgebungen). Wenn du erstmal 
programmieren kannst, kannst du dich mit der Programmierung von 
Mikrocontrollern beschäftigen. Hier empfehle ich für den Anfang ganz 
klar Assembler. Nicht weil's besonders leicht ist, sondern weil man 
ziemlich viel über den Controller lernt.

Anfangen würde ich jedenfalls nicht direkt mit einem Mikrocontroller, 
denn die Debugging-Möglichkeiten sind dort doch sehr eingeschränkt. Am 
einfachsten wohl noch per USART, aber da braucht man dann auch wieder 
entsprechenden Code um das Zeug richtig verwenden zu können.

Ausserdem noch so nebenbei: Besorg dir ein Buch für den Einstieg. Geht 
einfach besser als mit elektronischer Literatur. Zu VB findest du z.B. 
hier einige: http://www.activevb.de/rubriken/buecher/index-buecher.html
#748805
Lesenswert?
• ▲
▼
@ Michael G. (linuxgeek)

>Also C-Code ist sicherlich wartbarer als Assembler. Und Stellen, wo
>Assembler unvermeidbar ist (wohl selten), kannst man immernoch inline
>machen.

Darum geht es doch gar nicht! Es geht um den Einstieg in die 
Programmierung. Und das ist BASIC nun mal wesentlich besser als C oder 
ASM.

MFG
Falk
Gast #748881
Lesenswert?
• ▲
▼
Ich würde unbedingt die Finger von BASIC lassen. Das ich damit mal auf 
dem C64 angefangen habe, hat mir eigentlich garnix gebracht.

Du willst Programmieren lernen, schau dir Delphi (Pascal) an, das ist 
eine Programmiersprache zum lernen aber nix für Mikrocontroller.

Du willst was lernen das von einer breiten Anzahl an Systemen 
unterstützt wird, relativ schnell ist und einheitliche Implementierungen 
auf verschiedenen Plattformen besitzt, schau dir C an.

Assembler ist ne nette Sache aber imho nicht mehr so wichtig wie vor 10 
Jahren und ich behaupte einfach mal das es nicht viele gibt, die besser 
in Assembler coden können als ein halbwegs versierter Programmierer in C 
mit Compileroptimierungen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren