PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : zum ersten mal Programmieren



2A
20.06.2007, 23:35
Hallo Leute

Ich habe ein riesen Problem.
Ich beschäftige mich schon seit jahren mit elektronik, aber so langsam will ich mal etwas neues ausser immer nur reparieren und rumlöten....

Ich lese des öfteren im Internet, dass sich viele Leute kleine Standalone Geräte mithilfe eines Atmega gebastelt haben.
Und nun zu meinem eigentlichen Problem, Ich habe hier einen Atmega 8 16PU, die Programmierschnittstelle ist gerade in Arbeit...
Allerdings habe ich noch nie Programmiert. also ich habe wirklich null ahnung vom Controller Programmieren.
:(
Ich weiß wirklich nicht wo ich anfangen soll, denn die meisten Tutorials benötigen ein bisschen Vorwissen in sachen C++ oder sonstiges....

Könnt ihr mir vielleicht weiterhelfen? egal ob lektüre, e-book oder einfach nur tipps

Ich danke euch schonmal im vorraus
mfg. 2A

p_mork
20.06.2007, 23:47
Hallo 2A,

die zwei besten C++-Tutorials die ich kenne:
http://www.volkard.de/vcppkold/inhalt.html
http://www.cpp-tutor.de/cpp/intro/toc.htm

Wenn Du nur C erlernen möchtest, dann brauchst Du dir nur die ersten 24 Kapitel des ersten Tutorials durchzulesen, wenn Du auch C++ möchtest, musst Du dich durch beide ganz durcharbeiten. Die Tutorials beziehen sich alle hauptsächlich auf PC-Programmierung, aber auf einem µC ist es genau dasselbe, nur die die Ein/ausgabe anders ist. Eine kostenlose IDE für win32 gibt es unter http://www.bloodshed.net/devcpp.html . Die speziell auf AVRs bezogene Sachen findest du unter http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial .

MfG Mark

PcVirus
21.06.2007, 16:56
Als erstes musst du dir eine Programmiersprache aussuchen, in der du den Controller programmieren möchtest.
Da gibt es z.B. C, Basic und Assembler.
Basic (Bascom) ist eine leichte Programmiersprache in der man nicht auf
auf Groß - und kleinschreibung und Klammern achten muss. Außerdem muss man sich nicht mit den Registern des Controllers auseinandersetzen.
Also eine Sprache in der man sehr schnell erste Ergebniss bekommt.

Auch ich habe in Basic angefangen und bin aber vor 3 Tagen auf C umgestiegen, weil mir die Sprache von der Syntax her besser gefällt und durch die Klammern kommt man bei der richtigen Schreibweise auch eine gute Programmstruktur und somit behält man die Übersicht über das Programm.
Ein gutes AVR C Tutorial ist wie schon von p_mork geschrieben das von Mikrocontroller.net (http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial)

MfG PcVirus

Sauerbruch
22.06.2007, 17:07
Das ging mir bis vor 6 Monaten auch so. Es ist wirklich eine sehr spannende Materie, gerade wenn man schon mit "diskreter" Digitalelektronik rumgearbeitet hat.

Ich bin am besten mit Bascom warmgeworden. Ist so ein wenig wie ´ne Tiefkühl-Pizza: Wahre Gourmets rümpfen zwar die Nase, aber Du hast in kurzer Zeit schon Resultate, die sich sehr gut sehen lassen. Leider verdienen m.E. die allerwenigsten Lehrbücher, die ich mir gekauft habe, diesen Namen. Ein superguter Einstieg ist das Buch von Ronald Walter (www.rowalt.de), und etwas tiefer geht das Werk von Claus Kühnelt. Und hier im Forum gibt´s Millionen interessante Fragen & Antworten, das zu lesen ist auch sehr lehrreich.

Aber vorsicht: Wenn´s einmal läuft, macht das Programmieren schnell süchtig!! Ich habe noch niemals vorher meine beruflichen Pflichten dermaßen vernachlässigt wie in den Monaten, als meine Chips "laufen" lernten... =P~

Viel Erfolg,

Daniel

2A
23.06.2007, 11:31
Super Leute
Ich danke euch, super feedback. :D
na dann kann es ja losgehen.

Ihr werdet bestimmt noch des öfteren von mir hören "wenn ich kurz vor nem Nerven zusammenbruch stehe" :-b

Nochmals Danke
Schönes Wochenende
2A

goara
23.06.2007, 21:13
hab auch noch ne kurze frage, will aber keinen neuen thread aufmachen und zwar habe ich diese zeile:
Pos_erreicht = G_11 * G_12 * G_21 * G31 *G32 * G41 * G42 * G51 *G52 * G61 * G62

der wert pos_erreicht soll einfach 1 werden, wenn alle werte 1 sind... allerdings kommt da ne seltsame fehlermeldung:
3 parameters expected ( in bacom)
kann mir jemand sagen was das heissen soll...
wenn ich nur
Pos_erreicht = G_11 * G_12
dann gehts...
pos_ereeicht sowie die Gs sind alle As Byte

danke shcon mal...

Sauerbruch
23.06.2007, 21:39
Also - ich bin ja auch noch nicht sooo der Checker - aber in einem bin ich mir ziemlich sicher: Du kannst in BASCOM immer nur 3 Variablen miteinander verwursten (="3 parameters expected"), also nach dem Muster A=B+C. Ich hatte auch mal so´n Problem, dass ein Wert das Produkt aus 4 Faktoren war (A=B*C*D*E), das hab´ ich qualitativ so gelöst:

A=B*C
A=A*D
A=A*E

Das wären bei Deinen 11 Faktoren natürlich 10 Programmzeilen mit entsprechender Rechenzeit, aber es könnte schon mal klappen. Ich hab´ gerade in der BASCOM-Hilfe nach AND- und OR-Befehlen gesucht - leider vergebens. Vielleicht findest Du da ja was...

Viel Erfolg!

goara
24.06.2007, 17:42
hmm ok. danke... so gehts... find ich zwar irgednwie unschoen, aber wenn das in bascom so is muss ich wohl mit leben.. AND gibts auch, aber da kann man auch imer nur 2 nehmen , bringt also keinen vorteil...

Sauerbruch
26.06.2007, 14:39
@goara:

Ich habe auch gerade die AND-Funktion entdeckt und sie einfach mal daraufhin getestet, ob man mehrere (>2) Bedingungen UND-verknüpfen kann. Folgenden Code hat Bascom bei mir anstandslos compliert:


$regfile = "m8def.dat"
$crystal = 3686400


Dim A As Byte
dim B As Byte
Dim C As Byte
Dim D As Byte
Dim E As Byte

Do

If A = 1 And B = 1 And C = 1 And D = 1 Then E = 1 Else E = 0
Loop


Der Code hat keinen tieferen Sinn als herauszufinden, ob sich mehr als 2 Bedingungen über AND verknüpfen lassen. Was hat denn bei Dir mit der AND-Verknüpfung nicht funktioniert?

goara
28.06.2007, 20:40
@ sauerbruch danke so tuts...
noch ne frage.. wie bekomm ich den betrag eines wertes raus, also ohne vorzeichen... ?

Torsten_G
29.06.2007, 09:36
Fas wie in jeder anderen Sprache: Neue_Var=ABS(Variable)

Grüße

Torsten