Forum: Mikrocontroller und Digitale Elektronik Attiny2313 programmieren


von Maik (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

also ich habe mir das board von pollin für 15 € gekauft und es 
funktioniert auch einwandfrei.
jetzt mein Problem:

1. ich habe versucht das testtool umzuschreiben, also mal beide Ausgänge 
vertauscht , ich wollte das als hex-file konvertieren aber er bringt mir 
nur fehlermeldung.

hier ist das programm aber bitte nicht schimpfen, dass ist meine erste 
aufgabe die ich in sachen microcontroller mache.
die definition ist im anhang, einfach nur mit editor öffnen.



mein prog:

$regfile = "tn2313def.inc" 'definieren des verwendeten Chips

$crystal = 8000000 'definieren des verwendeten externen Quarz (8MHz)

Dim A As Byte 'dimensionieren der verwendeten Variablen
Dim B As Byte

Ddrd = &B11100000 'definieren der verwendeten Ports ( 1 = ausgang; 0= 
eingang)
Portd = &B00000000 'definieren der einzelnen Pins an einem Port ( 0= low 
level; 1= high level)


Main: 'Hauptprogramm
Do 'Anfang der Schleife

If Pind.2 = 1 Then 'Wenn an Pin 2 von Port D ein high level anliegt, 
dann...

Toggle Portd.6 '...setze Pin 6 von Port D von high auf low oder 
umgekehrt
Bitwait Pind.2 , Reset 'warte bis an Pin 2 von Port D wieder ein low 
level anliegt

End If 'Ende der Bedingung
If Pind.3 = 1 Then 'Wenn an Pin 3 von Port D ein high level anliegt, 
dann...

Toggle Portd.5 '...setze Pin 5 von Port D von high auf low oder 
umgekehrt
Bitwait Pind.3 , Reset 'warte bis an Pin 3 von Port D wieder ein low 
level anliegt

End If 'Ende der Bedingung



Loop 'zum Anfang der Schleife

Bitte helft mir

gruß maik

von Karl H. (kbuchegg)


Lesenswert?

Maik wrote:
>
> hier ist das programm aber bitte nicht schimpfen,

Wir sind ja nicht deine Eltern :-)

> 1. ich habe versucht das testtool umzuschreiben, also mal beide Ausgänge
> vertauscht , ich wollte das als hex-file konvertieren aber er bringt mir
> nur fehlermeldung.

Der erste Schritt besteht immer darin, die Fehlermeldungen zu
lesen und mit dem geschriebenen Code in Verbindung zu bringen.

Also: Wie lauten die Fehlermeldungen.
Normalerweise ist meist nur die erste Fehlermeldung interessant.

von Maik (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

Im anhang hab ich mal ein screenshot angehängt, ich hoffe du kannst was 
damit anfangen.


gruß maik

von Werner (Gast)


Lesenswert?

Du versuchst ein Basic Programm mit dem Assembler zu kompilieren.
Schau doch mal ins Tutorial, oder besorge dir den Bascom Compiler. Der 
sollte mit dem Code umgehen können...

von Maik (Gast)


Lesenswert?

Den compiler hab ich mir schon gedownloadet, aber ichkomm mit der 
programmierungnicht klar, ich habe gestern abend, mal mit bascom ein 
bisschen gefumelt,also ein bisschen geht es schon, ich weiß aber nicht 
wie die ausgänge und eingänge definiert werden. und von bascom hab ich 
bis jetzt noch kein tutorial gefunden, dass mir dann weiterhelfen kann.



gruß maik

von Karl H. (kbuchegg)


Lesenswert?

Maik wrote:
> Den compiler hab ich mir schon gedownloadet, aber ichkomm mit der
> programmierungnicht klar, ich habe gestern abend, mal mit bascom ein
> bisschen gefumelt,also ein bisschen geht es schon, ich weiß aber nicht
> wie die ausgänge und eingänge definiert werden. und von bascom hab ich
> bis jetzt noch kein tutorial gefunden, dass mir dann weiterhelfen kann.
>
>

Ist zwar kein Tutorial, aber in der BASCOM Hilfe sind
doch jede Menge Beispiele enthalten.

Schau mal in den Befehl "CONFIG PORT"

Auch der Abschnitt "BASCOM Language Fundamentals" -
"Newbie Problems" ist es wert mal gelesen zu werden.

Im übrigen: Im Netz gibt es Tutorien zu BASCOM.
Man muss sie nur suchen (und finden)

http://www.google.com
Suchbegriff: BASCOM Tutorial

zb. das hier arbeitet mit BASCOM
http://www.roboternetz.de/wissen/index.php/AVR-Einstieg_leicht_gemacht

von Maik (Gast)


Lesenswert?

ist das eigentlich die ganz normale basic sprache, ich habe mal mit 
GW-Basic in der schule eine ampelsteuerung realisiert das wahr aber in 
der 7. klasse also verdammt lang her (4 J). Gibt es irgendwo ein liste 
mit den ganzen befehlen und deutscher übersetzung dazu oder gibt es ein 
patch für bascom damit die hilfe auf deutsch wird, weil so gut ist das 
englisch bei mir auch nicht. wenn es das irgendwie gibt dann weiß ich 
wenigsten wie es so halbwegs geht.


gruß maik

von Hannes L. (hannes)


Lesenswert?

Ich will auch alle AVR-Literatur in Deutsch!
Und möglichst noch als Videos, damit ich nicht lesen brauche!!
Ansonsten streike ich!!!

- Oder auch nicht...

...

von Maik B. (maik-bizuga)


Lesenswert?

das stimmt, videos währen auch nicht schlecht, aber lesen bildet.


gruß maik

von Holger K. (krulli) Benutzerseite


Lesenswert?

@Maik
kauf dir doch das Buch "Programmieren der AVR RISC Mikrocontroller mit 
BASCOM-AVR" von Claus Kühnel... aber 35 EUR sind dir bestimmt zu 
teuer... Kostenlos ist Google...

@Hannes [...]
wieder mal spitz formuliert ;-)

Holgi

von Maik B. (maik-bizuga)


Lesenswert?

ja stimmt, 35€ ist wirklich ein bisschen zuviel aber bei google find ich 
auch nichts richtiges, ich brauch ja bloß die befehle und vielleicht ein 
beispiel dazu, wie ich die befehle realisiere.


gruß maik

von Thomas (Gast)


Lesenswert?

Also ich finde hier z.B.:
http://www.rowalt.de/mc/index.htm

Aber vielleicht solltest Du erstmal hier nachsehen:
http://www.computerbase.de/forum/showthread.php?p=1448212

von Maik B. (maik-bizuga)


Lesenswert?


von Hannes L. (hannes)


Lesenswert?

Holger Krull wrote:
> @Hannes [...]
> wieder mal spitz formuliert ;-)

Na ist doch wahr. Null Bock in der Schule (siehe penetrante 
Kleinschreibung und Weigerung Englisch zu lesen), null Ahnung (hatten 
wir auch alle mal, haben wir aber mit Fleiß geändert), aber Pollin-Board 
kaufen und programmieren wollen...

Ich kann hier keine Eigenbemühung erkennen. Da rutscht mir dann schon 
mal eine spitz formulierte Bemerkung raus.

Ich kann und weiß auch Vieles nicht. Da muss ich eben im Einzelfall 
entscheiden, ob ich es lernen will, indem ich mich mit dem Stoff 
beschäftige, oder ob ich es (vorläufig) sein lasse. Wissen und Können 
muss man sich erarbeiten. Das kann man nicht in Foren zusammenfragen.

...

von Maik B. (maik-bizuga)


Lesenswert?

@Hannes Lux


1. ich will es ja lernen, aber ich habe bis jetzt nur am Wochenende 
Zeit.
Weil ich jeden Tag 4 Uhr mit der Bahn fahren muss damit ich dann 
6:30 Uhr auf Arbeit bin, und dann erst wieder 21 Uhr zu Hause bin.

2. Die Großschreibung geht bei meinen PocketPC nur mit Stift, also 
verzeih mir das bitte.

3. Das Board von Pollin hat mir mein Ausbilder empfohlen und bestellt, 
er meinte , dass reicht zum üben und für Testzwecke.

4. Ich bin vor einen Jahr aus der Schule raus und bis jetzt nie wieder 
was mit Englisch zutun gehabt.

5. Ich habe nicht vor alles in Foren zufragen, ich möchte ja bloß Tips 
oder Hilfe. die Basic-Sprache hab ich noch ein bisschen drauf, und wenn 
man von vielleicht 10% anfängt dauert es zwar nicht mehr solange aber es 
kostet nun doch ein bisschen Zeit.






gruß Maik

von k.m. (Gast)


Lesenswert?

okay,zeit, ist immer schlecht wenn man keine hat.
ich kann dir nur empfehlen bei ebay nach dem
"mikrokid" zu suchen da ist eine cd dazu und beispielprogramme,
für anfänger.mit dem habe ich angefangen und konnte nach kurzer
zeit die ersten erfolge verbuchen.
(p.s. ich schreibe auch nur klein und das stört mich nicht.)
da bekommst du auf einfache art und weise die befehle erklärt
und kannst nach kurzer dauer sie auch sinnvoll einsetzten.
angefangen von taster-abfragen über kleine lauflichter und bis hin
zu den timern nutzen,also für den anfang super und auch nicht teuer
wenn man bedenkt was der vertreiber an zeit und arbeit reingesteckt
hat.also suche mal nach dem teil.
hier der link:
www.mikrokid.de

k.m.

von Hannes L. (hannes)


Lesenswert?

Maik Bizuga wrote:
> @Hannes Lux
>
>
> 1. ich will es ja lernen, aber ich habe bis jetzt nur am Wochenende
> Zeit.

Das ist gut.

> Weil ich jeden Tag 4 Uhr mit der Bahn fahren muss damit ich dann
> 6:30 Uhr auf Arbeit bin, und dann erst wieder 21 Uhr zu Hause bin.

Das ist verwerflich. Die dafür verantwortlichen Politiker sollte man 
aufhängen.

>
> 2. Die Großschreibung geht bei meinen PocketPC nur mit Stift, also
> verzeih mir das bitte.

Das ist eine Frage der Disziplin. Und seitdem groß und breit über dem 
Texteigabefeld (vierter Hinweis von oben) darauf hingewiesen wird, dass 
in diesem Forum Groß/Kleinschreibung erwünscht ist, wage ich es auch 
gelegentlich, notorische Kleinschreiber darauf hinzuweisen.

>
> 3. Das Board von Pollin hat mir mein Ausbilder empfohlen und bestellt,
> er meinte , dass reicht zum üben und für Testzwecke.

Wenn der Rechner nicht zu modern ist (wenn er noch eine echte 
COM-Schnittstelle hat), dann ist das Board nicht schlecht. Der darin 
enthaltene Programmer kommt aber mit einem Großteil der neuen PCs und 
Laptops nicht zurecht, da diese keine echte COM-Schnittstelle mehr 
haben.

>
> 4. Ich bin vor einen Jahr aus der Schule raus und bis jetzt nie wieder
> was mit Englisch zutun gehabt.

Ich bin vor über 40 Jahren aus der Schule raus und hatte nie 
Englisch-Unterricht. Trotzdem habe ich mich (ohne Meckern) damit 
abgefunden, dass die Datenblätter und viele andere Wissensquellen im 
technischen Bereich nur in Englisch verfügbar sind. Ein Wörterbuch kann 
da sehr hilfreich sein.

>
> 5. Ich habe nicht vor alles in Foren zufragen, ich möchte ja bloß Tips
> oder Hilfe.

Besser ist das.

> die Basic-Sprache hab ich noch ein bisschen drauf,

Ich habe BASIC auch 'drauf', ich programmier(t)e in einigen 
BASIC-Dialekten auf verschiedenen Systemen. Nur auf dem AVR hat mir mein 
BASIC-Wissen absolut nichts gebracht. Wenn man so dicht an der Hardware 
programmieren möchte, dann muss man die Hardware (Controller-Architektur 
incl. interner Peripherie-Features) auch kennenlernen, was BASCOM 
wirksam verhindert. Wenn man C nicht virtuos beherrscht ist Assembler 
die bessere Wahl. Nur so lernt man ohne Umwege die Hardware-Features 
(Timer, ADC, ...) kennen und effizient nutzen.

> und wenn
> man von vielleicht 10% anfängt dauert es zwar nicht mehr solange aber es
> kostet nun doch ein bisschen Zeit.

Ja, das Aneignen von Wissen kostet Zeit. Wissen kann man nunmal nicht 
kaufen, das muss man sich erarbeiten. Dafür kann Dir Dein Wissen keiner 
mehr wegnehmen.

>
>
>
>
>
>
> gruß Maik

...
(heißt soviel wie 'Beste Grüße, Hannes')

von Holger K. (krulli) Benutzerseite


Lesenswert?

Zum Einsteigen find ich den BASCOM nicht schlecht, hab ich auch so 
gemacht. Allerdings sollte man sich damit nicht lange aufhalten und 
schnellstens zum Assembler wechseln, jedenfalls meine Meinung.

von Maik B. (maik-bizuga)


Lesenswert?

Was kann man alles mit Bascom realisieren, wie schwer ist die 
Assemblersprache, ich hab mich noch nicht damit befasst, was haltet ihr 
von PureBasic (http://www.purebasic.de) , einer schon Erfahrung damit.



gruß maik

von Thomas (Gast)


Lesenswert?

Oh Herr wirf Hirn vom Himmel!

Hast du überhaupt einen Plan was programmieren ist?
Was der Unterschied zwischen einer CPU und einem Mikrocontroller ist?

Definitiv NEIN!

PureBasic ist für den PC und nicht für einen Tiny2313.

Du solltest dringend in den 4 Stunden Bahnfahrt ein Buch darüber lesen.
Das musst du ja nicht zwingend kaufen, leihen geht auch.

von Hannes L. (hannes)


Lesenswert?

Maik Bizuga wrote:
> Was kann man alles mit Bascom realisieren,

Mit BASCOM kann man alles erledigen, für das fertige Bausteine 
mitgeliefert werden. Um diese anwenden zu können, musst Du natürlich die 
Dokumentation (Hilfe) lesen und verstehen, die ist aber nunmal in 
Englisch.

Du wirst Dich mit absolut unlogischen Config-Anweisungen herumschlagen 
müssen. Und wenn Du mal ein Bauteil hast, für das BASCOM keinen fertigen 
Baustein mitbringt, dann bist Du am Ende, denn die Phillosophie von 
BASCOM besteht darin, Dich abhängig zu machen, damit Du die Vollversion 
kaufst. Deshalb verbirgt Dir BASCOM die reale Hardware (die im Datasheet 
des AVRs genauestens erklärt ist), denn Du könntest ja auf die Idee 
kommen, die I/O-Register auch direkt anzusprechen, was dann das Niveau 
von ASM ist...

> wie schwer ist die
> Assemblersprache,

Wenn man die Hochsprache, die man benutzen möchte (z.B. C) auch nicht 
richtig beherrscht, dann ist Assembler die einfachste Sprache. Denn als 
Wissensquelle genügt das Datenblatt des AVRs, da steht sogar der 
komplette Befehlssatz drin (ein AVR kann weder BASIC noch C, er kann nur 
Maschinencode, jeder Maschinenbefehl entspricht exakt einem 
Assemblerbefehl, ASM ist nur eine andere Schreibweise für 
Maschinencode).
Die Hilfe zum (kostenlosen) AVR-Studio und die Datei AVR-Instruction-set 
geben weiterführende Erklärungen zu den Assemblerbefehlen.

> ich hab mich noch nicht damit befasst,

Schade eigentlich. Denn nur in ASM macht der Controller genau das, was 
man programmiert. Um das in einer Hochsprache zu erreichen, muss man 
diese schon sehr virtuos beherrschen. Gute C-Programmierer können 
übrigens auch Assembler.

> was haltet ihr
> von PureBasic (http://www.purebasic.de) ,

Ist nicht für Mikrocontroller, sondern für PC.

> einer schon Erfahrung damit.

Ja, ich hatte mir mal die Demoversion von PureBasic angesehen. Die ist 
aber immer abgestürzt, daher habe ich sie wieder entsorgt und nutze 
weiterhin QB und VB.

>
>

Ehe Du jetzt irgendwelche unüberlegten Entscheidungen triffst, solltest 
Du mal das AVR-Tutorial hier auf dieser Webseite durchlesen und 
versuchen zu verstehen. Zum Nachvollziehen der ASM-Codebeispiele 
brauchst Du nichtmal reale Hardware, es genügt das kostenlose AVR-Studio 
(www.atmel.com), um diese Programmbeispiele im Simulator zu analysieren. 
Wenn Du sie dann verstanden hast, kannst Du sie ja mit realer Hardware 
ausprobieren. Versuche dabei aber nicht, den dritten Schritt vor dem 
ersten zu machen, das bringt nur Frust.

>
> gruß maik

...

von Hannes L. (hannes)


Lesenswert?

Thomas wrote u.a.:
>
> Du solltest dringend in den 4 Stunden Bahnfahrt ein Buch darüber lesen.
> Das musst du ja nicht zwingend kaufen, leihen geht auch.

Dem stimme ich zu.
Ich könnte leihweise (ein, zwei Monate) das Buch 
AVR-Mikrocontroller-Praxis (Volpe, ELEKTOR) zur Verfügung stellen. Es 
erklärt den ASM-Befehlssatz auf Deutsch, zeigt ein paar 
Hardware-Beispiele und ein paar Programm-Beispiele in Assembler. Auch 
die grundlegende Architektur des AVRs wird erklärt.

...

von Holger K. (krulli) Benutzerseite


Lesenswert?

Hannes Lux wrote:
> denn die Phillosophie von
> BASCOM besteht darin, Dich abhängig zu machen, damit Du die Vollversion
> kaufst.

@Hannes
da BASCOM wie KOKS ist, ist das aus in den Niederlanden... :-)))
(kleiner Scherz am Rande)

@Maik
sei froh, das die Hilfe nicht in niederländisch ist....

von Maik B. (maik-bizuga)


Lesenswert?

@Hannes Lux

Das währe nicht schlecht, wenn du mir das Buch leihen könntest, das 
AVR-Studio hab ich schon geladen. Ich bin aber noch nicht dazu gekommen 
was damit zu machen.


gruß maik

von Karl H. (kbuchegg)


Lesenswert?

Maik Bizuga wrote:
> @Hannes Lux
>
> Das währe nicht schlecht, wenn du mir das Buch leihen könntest, das
> AVR-Studio hab ich schon geladen. Ich bin aber noch nicht dazu gekommen
> was damit zu machen.
>

Na super.
Das ist doch schon ein Anfang.

Dann fang hier

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

mal zu lesen an.
Wenn du was nicht verstehst: Hier fragen.
(Ist auch in unserem Interesse. Dann können wir das Tutorium
weiterentwickeln)

von Hannes L. (hannes)


Lesenswert?

Maik Bizuga wrote:
> @Hannes Lux
>
> Das währe nicht schlecht, wenn du mir das Buch leihen könntest,

Ja, ich kann. Aber dazu müsstest Du schon Kontakt zu mir aufnehmen.

> das
> AVR-Studio hab ich schon geladen. Ich bin aber noch nicht dazu gekommen
> was damit zu machen.

Dazu verweise ich auch auf das Tutorial. Das weist auf die ersten 
Stolperfallen hin. Da das Tutorial den Mega8 benutzt, wäre es sinnvoll, 
wenn Du Dir (z.B. bei CSD, siehe Linkliste) einenn Mega8 zulegen 
würdest. Das erspart Dir (in der Phase, in der Du noch null Ahnung hast) 
viel Umdenkerei, denn die AVRs sind unterschiedlich ausgestattet 
(Features) und die Programme sind daher an den jeweiligen Typ 
anzupassen, was schon etwas Überblick erfordert.

...

von Maik-Bizuga (Gast)


Lesenswert?

@Hannes Lux


wie machen wir das mit den Kontakt, soll ich dir PM schicken oder wie.
Den Mega8 hab ich gestern schon bestellt und einen Mega16/32 auch 
gleich.



Gruß Maik

von Hannes L. (hannes)


Lesenswert?

Maik-Bizuga wrote:
> wie machen wir das mit den Kontakt, soll ich dir PM schicken oder wie.

Ja sicher doch, oder siehst Du eine andere Möglichkeit?
Kannst es natürlich auch abholen, falls Du im Raum Magdeburg unterwegs 
bist...

> Den Mega8 hab ich gestern schon bestellt und einen Mega16/32 auch
> gleich.

Gute Idee (Mega8). Mega16/32 haben natürlich wieder ihre eigenen 
Fallstricke, die würde ich erstmal beiseite legen um Frust zu sparen. 
Das Tutorial nutzt den Mega8. Also brauchst Du erstmal nur den Mega8, um 
das Tutorial (ohne Umdenken auf einen anderen Typ) abarbeiten zu können.

...

von Maik B. (maik-bizuga)


Lesenswert?

@Hannes Lux

ne nach Magdeburg komm ich erstmal nicht.

Das mit den Atmels dauert eh noch ein bisschen, bis die da sind.

Gruß Maik

von Hannes L. (hannes)


Lesenswert?

Maik Bizuga wrote:
> @Hannes Lux
>
> ne nach Magdeburg komm ich erstmal nicht.

Das Buch ist schon unterwegs.

>
> Das mit den Atmels dauert eh noch ein bisschen, bis die da sind.

Was sind 'Atmels'? - Die Leute, die bei Atmel arbeiten? Die '51er der 
AT89er Reihe? Die ARMs der 91er Reihe? Die vielen anderen 
Schaltkreisfamilien, die bei Atmel hergestellt werden? Falls Du damit 
AVRs meintest, dann nenne sie bitte auch AVRs. Das klingt vielleicht 
nicht ganz so cool, ist aber unmissverständlich.

>
> Gruß Maik

Gruß,
Hannes

von Maik B. (maik-bizuga)


Lesenswert?

ich werde es mir merken, also z.B. Mega8 = AVR. ist das richtig ?

Gruß Maik

von Hannes L. (hannes)


Lesenswert?

Maik Bizuga wrote:
> ich werde es mir merken, also z.B. Mega8 = AVR. ist das richtig ?

Nein, es gibt auch noch andere AVRs.

>
> Gruß Maik

Es gibt Aussagen, die gelten für die gesamte AVR-Controllerfamilie. In 
diesem Fall kann man verallgemeinern, indem man sie AVRs nennt.

Es gibt aber auch Aussagen, die nur für einen ganz bestimmten Tüp 
gelten, dann sollte man diesen Typ schon beim Namen nennen. Es reicht 
z.B. nicht, vom 'Tiny' zu reden, weil es Probleme mit (evtl. nicht 
vorhandenem) SRAM gibt. Denn der eine hat (Tiny2313, Tiny13, Tiny25, 
...) der andere hat nicht (Tiny12, Tiny15, ...). Ebenso gibt es kaum 
Aussagen, die auf alle 'Megas' zutreffen. Die Ausstattung mit Features 
ist dermaßen unterschiedlich, dass man den Typ schon nennen sollte.
Da funktioniert z.B. ein LCD am PortC des 'Mega' nicht. Wenn man weiß, 
dass es der Mega16/32 ist, dann kann man darauf hinweisen, dass das 
aktive JTAG-Interface einige I/O-Pins von PortC blockiert. Weiß man es 
nicht, weil der Hilfesuchende ganz cool von seinem 'Atmel' oder 'ATMega' 
spricht (wir haben ja alle nur diesen einen Typ, den der Fragesteller 
gerade beim Wickel hat!), dann ist Rätselraten angesagt. Und der 
Hilfesuchende wundert sich dann, dass er spitze (ironische) Nachfragen 
bekommt (auch von mir) weil ihn niemand ernst nimmt.

...

von Maik B. (maik-bizuga)


Lesenswert?

Gut, da weiß ich das jetzt.


Gruß Maik

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.