Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Das Wettringer Modellbauforum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

  • »Patrick_487« ist der Autor dieses Themas

Beiträge: 1 441

Realname: Patrick

Wohnort: Sandersdorf-Brehna

  • Nachricht senden

1

Montag, 15. Oktober 2012, 17:34

Welche Programmiersprache ist für mikrocontroler zu empfehlen

Hallo zusammen,

ich beschäftige mich ja schon eine ganze Weile mit der Thematik mikrocontroler. habe diese auch schon eingesetzt und erst vor kurzem wieder einen pic beschrieben mit meinem Pic-Programmer.

Mir wurde auch vom ersteller des Programms gesagt das es in assembler geschrieben ist. denn ich wollte ein paar Dinge gerne ändern.

habe mich dazu auch schon belesen und Stelle mir jetzt die Frage ob ich mir assembler oder die C Programmierung aneignen soll oder doch beides?

vielleicht ist ja auch der ein oder andere da der mir ein wenig helfen könnte.

ich danke euch.

es grüßt Patrick :wink:
Aktuell im Bau: HLF 20/16 Beleuchtet u. Mercedes Benz
Auf der Warteliste: Simba 8x8, TLF 16/25

Beiträge: 2 494

Realname: Johannes

Wohnort: Gastarbeiter im Bajuwarischen Königsreich

  • Nachricht senden

2

Montag, 15. Oktober 2012, 17:58

Hallo Patrick,

genauso wie bei den Modellen werden auch hier die Leidenschaften und Empfehlungen weit auseinander gehen.
Ich selber habe in jungen Jahren in arg vielen Sprachen programmiert, darunter HP-BASIC, FORTRAN, PASCAL, MODULA, C, C++, ASSEMBLER. Im Zuge des WEB-Zeitalters kamen dann Javascript, PHP, HTML und CSS dazu.
Wenn man einmal in dem Kram drinsteckt, dann ist es lediglich lästig auf eine neue Sprache zu wechseln, aber nicht wirklich herausfordernd.

Bei den kleinen Mikrocontrollern programmiere ich mittlerweile fast ausnahmslos in Assembler. Dies liegt im Wesentlichen daran, dass ich die Dinger bis zum letzten ausreize und extrem nah an der internen Hardware rumwurschtele. Da bietet einfach Assembler die beste Transparenz und Effizienz. Als Nachteil erkauft man sich einen deutlich höheren Aufwand und eine zuweilen grauselige Abstraktion.

Für den Einstieg ist meine Empfehlung BASCOM. Dies ist ein spezifischer BASIC-Dialekt für die ATMEL-Familie. Ich bin mir sicher, dass es Ähnliches oder Gleiches auch für PIC gibt, da beide Familien viele Gemeinsamkeiten haben.
BASCOM erhält man als Testversion umsonst. Diese Version reicht für Programme bis 4 kB Größe - 80% meiner RC-Projekte lagen unter dieser Grenze.
Zudem gibt es hervorragende Tutorials, wo man binnen Minuten beginnt eine LED an- und auszuschalten.
Zum kostenlosen BASCOM gesellt sich dann noch ein USB-Programmieradapter (z. B. myAVR) für 15 Euro und drei Test-Chips für je ein Euro - fertig lustig.
Der große Vorteil von BASCOM: Es ist eine Mischung aus Englischer Sprache und mathematischen Gleichungen, dazu noch ein bisschen logische Formulierungen. Einfacher geht es wirklich nicht mehr.
Zum Spaß kann man sich dann auch den vom Compiler erzeugten Assembler-Code ansehen und versuchen diesen zu verstehen.
Weitere Vorteile sind, dass BASCOM viele Hardware-Konfigurationen (Timer etc.) in sehr einfacher Weise abbildet und diverse Befehle für RC-Applikationen (Empfängersignal messen, Servo ansteuern) fertig drin hat.

Viel Spaß und Gruß,
Johannes

  • »Patrick_487« ist der Autor dieses Themas

Beiträge: 1 441

Realname: Patrick

Wohnort: Sandersdorf-Brehna

  • Nachricht senden

3

Montag, 15. Oktober 2012, 19:14

Hallo Johannes,

ich danke dir erstmal für die schnelle Antwort. Hast mich auch ei. wenig weiter gebracht mit deinem Hinweis auf basecom.

Ich habe mit der ganzen Sache folgendes vor, das ich mir halt das ein oder andere Programm selber schreiben mag hauptsächlich für meine Projekte wo LEDs im Spiel sind. Wie zum beispiel lauflicht steuerung, verschiedene blinkmuster usw.

Und Bein den mikrocontrolern will ich nicht zwangsweise bei der pic famile bleiben, wenn es andere gibt mit denen man mehr machen kann ist das auch ganz praktisch.

Ich werde mir heute Abend mal das Programm runterladen was du mir empfohlen hast. was für Chips bräuchte ich dann noch?
Würde das ganze auf dem zweitrechner machen wo noch win me drauf ist, ansonsten auf meinem mit ein 7.

es grüßt Patrick
Aktuell im Bau: HLF 20/16 Beleuchtet u. Mercedes Benz
Auf der Warteliste: Simba 8x8, TLF 16/25

Beiträge: 2 494

Realname: Johannes

Wohnort: Gastarbeiter im Bajuwarischen Königsreich

  • Nachricht senden

4

Montag, 15. Oktober 2012, 19:21

Nochmals hallo Patrick,

wenn Du für kleines Geld einsteigen möchtest, dann kannst Du Dir bei myAVR.de neben dem zwangsläufig benötigten Programmieradapter auch gleich Chips und gegebenenfalls weitere Kleinteile bestellen.
Für den allerersten Anfang benötigst Du allerdings nahezu nichts. Es reicht der Chip, am besten ein paar 6-polige Pfostenstiftreihen (3x2) zum Anschluss des Programmierkabels, 330 Ohm Widerstände und LEDs.
Für den Beginn ist prächtig geeignet ein ATTiny13, ATTiny 15 (beide 8 Pin) oder ATTiny24 (14 pin), natürlich in der bedrahteten DIL-Ausführung.

Viel Spaß,
Johannes

  • »Patrick_487« ist der Autor dieses Themas

Beiträge: 1 441

Realname: Patrick

Wohnort: Sandersdorf-Brehna

  • Nachricht senden

5

Montag, 15. Oktober 2012, 22:55

Hallo Johannes,

ich melde mich noch mal kurz, habe gerade mal ein wenig im netz geschaut und die deutsche Anleitung zu BASCOM (direkt der Hersteller aus Holland) gefunden.
Werde mir morgen dann mal die Demo runterladen und mal ein wenig anfangen :)

habe gerade auch bei myavr.de geschaut wegen dem Programmer und diesen hier gefunden hier
ist das der den du meintest?

Wofür ist eigentlich das myavr Board gut? das habe ich dort auch erst gesehen (kostet 15€)

Sowie ich mich mal an was probiert habe werde ich gerne davon dann hier berichten, und wenn ich Fragen habe kann ich bestimmt an dich wenden oder?

es grüßt Patrick :wink:
Aktuell im Bau: HLF 20/16 Beleuchtet u. Mercedes Benz
Auf der Warteliste: Simba 8x8, TLF 16/25

Beiträge: 2 494

Realname: Johannes

Wohnort: Gastarbeiter im Bajuwarischen Königsreich

  • Nachricht senden

6

Montag, 15. Oktober 2012, 23:11

Hi Patrick,

zunächst einmal: Ja - das ist der USB-Programmieradapter, den ich meinte. Ich habe über die Jahre zwar auch eine Reihe weiterer angeschafft, teilweise für 3 Euro aus China, bin aber noch immer rundum glücklich mit dem AVR-Teil. Hat mir immer gute Dienste geleistet und arbeite stets zuverlässig, inkl. dem integrierten Kurzschluss- und Verpolungsschutz.

Das myAVR Board light ist nichts anderes als eine wirklich günstige Bastel- und Lernplattform. Man spart sich damit das eigene Zusammenlöten von Bauteilen und natürlich deren Beschaffung.
Ich selber hab so etwas nie benutzt - würde aber bei einem Neueinstieg die 15 Euro spendieren. Ist einfach super bequem, wenn Du direkt einen Lautsprecher, LEDs etc. ausprobieren kannst.
Aufgrund der Spannungsversorgung über USB brauchst Du noch nicht einmal ein externes Netzteil.
Allerdings solltest Du einen 6-poligen Wannenstecker für 15 Cent mitbestellen, denn der fehlt noch auf der Leiterplatte.
Auf dem Experimentierboard sitzt ein ATMEL ATMega8, also schon ein recht leistungsstarker Vertreter seiner Familie. Ist aber kein Nachteil, da Du das Erlernte später recht einfach auf alle anderen "Brüdern" übertragen kannst.

Gruß,
Johannes

  • »Patrick_487« ist der Autor dieses Themas

Beiträge: 1 441

Realname: Patrick

Wohnort: Sandersdorf-Brehna

  • Nachricht senden

7

Montag, 15. Oktober 2012, 23:27

hallo Johannes.

danke dir wieder für deine schnelle Antwort.

werde mir dann den Programmier und dann das Board wahrscheinlich bestellen. hatte auch mal noch geschaut wegen den ATtiny aber die haben dort nur den 13 und den 10er.
kann mir ja dann halt von dem 13er 3 bestellen zum testen.

es grüßt Patrick :wink:
Aktuell im Bau: HLF 20/16 Beleuchtet u. Mercedes Benz
Auf der Warteliste: Simba 8x8, TLF 16/25

  • »Patrick_487« ist der Autor dieses Themas

Beiträge: 1 441

Realname: Patrick

Wohnort: Sandersdorf-Brehna

  • Nachricht senden

8

Mittwoch, 17. Oktober 2012, 13:18

Hallo zusammen, :wink:

habe eben nochmal auf der Seite von myavr.de geschaut und mir mal meinen Warenkorb zusammengestellt, dürfte jetzt alles dabei sein was ich für den Anfang brauche oder? klick hier

Was ich bisher noch nicht richtig gefunden habe ist eine kleine Anleitung zu BASCOM in Deutsch, da werde ich aber nochmal weiter suchen.

bis dahin es grüßt Patrick :wink:
Aktuell im Bau: HLF 20/16 Beleuchtet u. Mercedes Benz
Auf der Warteliste: Simba 8x8, TLF 16/25

9

Mittwoch, 17. Oktober 2012, 13:24

Hi Patrick,
wenn man deinen "Warenkorb" anschaut, ist der allerdings leer...

Wenn du eine Anleitung zu BASCOM gefunden hast, dann sag bitte mal Bescheid. ;)

lg,
Frank
Modellbau ist Kunst - und manchmal Sport - und darf niemals als Arbeit gesehen werden!

Im Bau: The 24-Gun Frigate Pandora 1:128 - RC
Im Bau: Schlepper Goliath - RC

  • »Patrick_487« ist der Autor dieses Themas

Beiträge: 1 441

Realname: Patrick

Wohnort: Sandersdorf-Brehna

  • Nachricht senden

10

Mittwoch, 17. Oktober 2012, 14:12

Hallo Frank, :wink:

danke für den Hinweis, scheinbar sehe ich diesen nur da er auf meinem PC gespeichert ist.

Hier mal kurz die Auflistung der Teile

mySmartUSB light -> Programmer
myAVR Board light, Bausatz vorbestückt
ATtiny10 und 13 jeweils 3stück
ATmega8A (einer ist ja schon im Bausatz dabei)
Sockelleiste SPL20, einreihig
Wannenstecker 6polig
IC Sockel 28

Ja klar gebe ich dir bescheid sowie ich was passendes gefunden habe im Netz. Es gibt zwar ein paar Bücher die hier und dort empfohlen werden. Aber 54€ für ein Buch ist mir etwas zu teuer.

es grüßt Patrick :wink:
Aktuell im Bau: HLF 20/16 Beleuchtet u. Mercedes Benz
Auf der Warteliste: Simba 8x8, TLF 16/25

11

Mittwoch, 17. Oktober 2012, 15:08

Hi Patrick,
ich schau gerade da mal rein:

kleiner BASCOM AVR Kurs

Vielleicht hilft uns das ja auch weiter?

lg,
Frank
Modellbau ist Kunst - und manchmal Sport - und darf niemals als Arbeit gesehen werden!

Im Bau: The 24-Gun Frigate Pandora 1:128 - RC
Im Bau: Schlepper Goliath - RC

  • »Patrick_487« ist der Autor dieses Themas

Beiträge: 1 441

Realname: Patrick

Wohnort: Sandersdorf-Brehna

  • Nachricht senden

12

Mittwoch, 17. Oktober 2012, 15:26

Hallo Frank,

danke für deinen Link, den hatte ich gestern schon mit dem Handy gefunden aber ihn nicht abgespeichert. Jetzt kann ich mal dort ein wenig weiter lesen.

Das Programm was mir Johannes empfohlen hatte, habe ich schon auf meinem PC.

es grüßt Patrick :wink:
Aktuell im Bau: HLF 20/16 Beleuchtet u. Mercedes Benz
Auf der Warteliste: Simba 8x8, TLF 16/25

13

Mittwoch, 17. Oktober 2012, 20:17

Hallo Leute :wink:

Ich bin mal so frei und klinke mich mit ein. Hätte mir ja mal früher einfallen können, Johannes nach einem Programm zu fragen. Hab eigentlich schon alles da, doch die Einarbeitung und das Verständnis für Assembler ......... :bang: :bang: :bang: .
Werd mir dann auch die FreeVersion von Bascom für attinys besorgen. Hoffe ich bin dann auf dem richtigen Weg.
Vielleicht wäre es nicht schlecht, hier in diesem Forum einen extra Fred für Bascom aufzutun????????? So als Sammelkiste für Probleme, Projekte und Lösungen ... Was meint Ihr???

In diesem Sinne
Gruß, Torsten die Landratte :pc:

Im Bau: Steampunk: Valortanica und Geheimer Hafen, Krabbenkutter, DUKW 1:35 RC

14

Mittwoch, 17. Oktober 2012, 20:30

Hey Torsten,
eine sehr gute Idee!
Dann könnten wir uns da über alle Probleme damit gut austauschen!
Ich hab sowieso immer das Problem, dass ich steckenbleibe, wenn ich irgendwas ganz allein lernen muss... :rot:
Da wäre so ein Thread rund um BASCOM echt genial. :ok:
Und als nächstes fangen wir dann einen mit Assembler an. :S

lg,
Frank
P.S. Hab inzwischen auch BASCOM auf dem Rechner (auch die Demo-Version).
Wahrscheinlich bestell ich mir am Wochenende die Hardware.
Modellbau ist Kunst - und manchmal Sport - und darf niemals als Arbeit gesehen werden!

Im Bau: The 24-Gun Frigate Pandora 1:128 - RC
Im Bau: Schlepper Goliath - RC

Beiträge: 2 787

Realname: Clemens

Wohnort: Thüringen

  • Nachricht senden

15

Mittwoch, 17. Oktober 2012, 20:52

Ich fände einen BASCOM Thread auch sehr interessant.
Die Technik interessiert mich und ich habe mich schon viel eingelesen, hoffentlich kann ich mir irgendwann den ersten Microcontroller programmieren. Bis dahin ist es noch ein recht langer Weg mit meinen Elektronik-Kenntnissen, aber der Thread wäre trotzdem schon jetzt super.
The "Earth" without "Art" is just "Eh".

  • »Patrick_487« ist der Autor dieses Themas

Beiträge: 1 441

Realname: Patrick

Wohnort: Sandersdorf-Brehna

  • Nachricht senden

16

Mittwoch, 17. Oktober 2012, 20:52

Hallo Torsten und Frank,

die Idee klingt ganz gut und ich denke mal das es auch Passend wäre hier im Elektronik Bereich diesen Fred aufzumachen.

@ Frank,

werde meins eventuell auch die Tage bestellen, werde aber vielleicht doch die ATtiny10 weglassen. Mal schauen ob sich deswegen Johannes nochmal meldet.

Irgendwie lese ich bisher im netz immer wieder das alles auf ein Buch hinaus läuft, nur ich finde aktuell die Preise für die Bücher etwas hoch die liegen alle so im schnitt bei 40€, naja mal schauen ob ich noch irgendwo eine
etwas besseree Anleitung finde zu BASCOM.

es grüßt Patrick :wink:
Aktuell im Bau: HLF 20/16 Beleuchtet u. Mercedes Benz
Auf der Warteliste: Simba 8x8, TLF 16/25

17

Mittwoch, 17. Oktober 2012, 21:44

Hi,

ich habe auch schon mit Bascom angefangen, aber so richtig weit bin ich noch immer nicht. Wenn hier ein Thread aufgemacht wird bin ich sicher mit am Start.

Das MyAVR Board habe ich auch und ein paar Tiny13 sind auch noch da.

Gruß Rick

Beiträge: 2 494

Realname: Johannes

Wohnort: Gastarbeiter im Bajuwarischen Königsreich

  • Nachricht senden

18

Mittwoch, 17. Oktober 2012, 23:02

Hallo zusammen,

von den ATTiny rate ich dringend ab. Dies sind winzige und extrem minimalistische Chips, die kaum Verwendungsmöglichkeiten bieten.
Das untere sinnvolle Ende der Skala sind ATTiny 13 und ATTiny 15. Sehr viel verwendet habe ich ATTiny 24 (oder 44 mit doppeltem Speicher).
Der ATMega 8 ist dann ein ganz universeller und beliebter Bursche.
All diese Typen gibt es in der bedrahteten DIL-Ausführung für kleines Geld.

Hier kommt noch einfach mal zum Spaß ein uraltes Beispielprogramm, welches ich mal in BASCOM geschrieben habe. Es liest ein Empfängersignal ein und zeigt an einer LED die Knüppelstellung an.
Ich denke das gibt mal ein Gefühl, wie relativ einfach sich so etwas umsetzen lässt:

Zitat

'--------------------------------------------------------------------------
'Test Empfängerimpulsauswertung
'
'ATtiny13
'Servoimpuls an PB0 (Pin 5)
'LED an PB1 (Pin 6)
'
'--------------------------------------------------------------------------

$regfile = "ATtiny13.dat"
$crystal = 9600000
$PROG &HFF,&H7A,&HFF,&H00' generated. Take care that the chip supports all fuse bytes.

'=== Dimension the variabele===
Dim Pulselenght As Word

'===Aliassen & constanten===
Led_status Alias Portb.1
Led_greater Alias Portb.2
Led_smaller Alias Portb.0
Const Off = 1
Const On = 0
Const Correction = 20

'===Setup the ports===
Config Pinb.0 = Output 'LED
Config Pinb.1 = Output 'LED
Config Pinb.2 = Output 'LED
Config Pinb.3 = Input 'Receiver channel

'===Set the port===
Waitms 1000

'===Main===
Led_status = Off
Led_smaller = Off
Led_greater = Off
Gosub Flash_led
Gosub Flash_led
Gosub Flash_led

Do
Pulsein Pulselenght , Pinb , 3 , 1 'Measure incoming pulselengte

If Err = 1 Then ' No pulses at all, fail safe activated
Gosub Flash_led
Gosub Flash_led
Gosub Flash_led
Gosub Flash_led
Gosub Flash_led
Waitms 500
Elseif Pulselenght < 10 Or Pulselenght > 300 Then
Gosub Flash_led
Gosub Flash_led
Gosub Flash_led
Waitms 500
Else
If Pulselenght < 200 And Pulselenght > 180 Then
Gosub Flash_greater
Waitms 200
Elseif Pulselenght < 120 And Pulselenght > 100 Then
Gosub Flash_smaller
Waitms 200
Else
Gosub Flash_led
Waitms 200
End If
End If

Loop
End

Flash_led:
Led_status = On
Waitms 50
Led_status = Off
Waitms 200
Return

Flash_greater:
Led_greater = On
Waitms 50
Led_greater = Off
Waitms 200
Return

Flash_smaller:
Led_smaller = On
Waitms 50
Led_smaller = Off
Waitms 200
Return
Viele Grüße,
Johannes

19

Donnerstag, 18. Oktober 2012, 16:05

Da habe ich schon Schwierigeres gesehen. Im Fehlerfall blinkt Status 5mal und wenn der Puls nicht zwischen 10 und 300 liegt halt 3mal.

Zwischen 100 und 120 blinkt Kleiner und zwischen 180 und 200 Größer (jeweils eher groß aus gesteuert) und bei 120 bis 180 dann Status (und auch 10-100 und 200-300?).

Die Pulsbreite liegt bei Fernsteuerungen zwischen 10 und 20 ms? Wie weiß man denn wie sich das in der Größe 100 bis 200 wiederspiegelt (woher kommt der Faktor 10) ? Gibt es nen fertiges Set an "Mess"-funktionen ,wie z.B. Länge des Eingangspulses bestimmen? Oder schreibt man das auch selber?

Mich erinnert das noch eher an C als an Basic (was ich nicht nachteilig empfinde).

  • »Patrick_487« ist der Autor dieses Themas

Beiträge: 1 441

Realname: Patrick

Wohnort: Sandersdorf-Brehna

  • Nachricht senden

20

Donnerstag, 18. Oktober 2012, 19:03

Hallo zusammen :wink:

ich habe mir gerade die Teile bei myavr bestellt. Bin schon sehr gespannt wenn die Teile da sind und dann kann es auch schon losgehen mit dem Programmieren. :lol:

Ich habe gerade noch ein paar Seiten gefunden die ich als Hilfreich finde:

bei youtube mal als suchbegriff "BASCOM" eingeben dort finden sich ein paar gute Videos in Deutsch, im ersten wird ein Led Lauflicht beschrieben.

auf dieser Seite gibt es 3 Pdf´s mit einem kleinen BASCOM Kurs unter der Rubrik AVR -> klick hier
auf der Seite von RCLine gibt es eine extra Seite mit BASCOM Programmen -> klick hier

Vielleicht hilft euch das ja auch ein wenig weiter, ich melde mich dann spätestens sowie ich meine Bestellung fertig habe und werde dann wahrscheinlich dafür einen neuen Fred aufmachen.

bis dahin es grüßt Patrick :wink:
Aktuell im Bau: HLF 20/16 Beleuchtet u. Mercedes Benz
Auf der Warteliste: Simba 8x8, TLF 16/25

21

Donnerstag, 18. Oktober 2012, 20:41

Hallo Patrick :wink:

danke für die Links. Überlege schon, ob ich mir nicht auch das Buch bestelle. Hab ja Anfang November einen Wunsch frei (Geburtstag :party: )

@ Faxe
nichts für ungut, aber da ich Anfänger bin hab ich doch nur die Hälfte verstanden. Was mich etwas stutzig gemacht hat, sind die Definitionen der unterschiedlichen Flash_LED's am Ende des Programm's. Hier sind alle Werte gleich. Wieso muß man dann alle dort so definieren? Nur des Namens wegen?????
Kleine Erklärung wäre hilfreich. Danke.

In diesem Sinne
Gruß, Torsten die Landratte :pc:

Im Bau: Steampunk: Valortanica und Geheimer Hafen, Krabbenkutter, DUKW 1:35 RC

Beiträge: 2 494

Realname: Johannes

Wohnort: Gastarbeiter im Bajuwarischen Königsreich

  • Nachricht senden

22

Freitag, 19. Oktober 2012, 00:14

Hallo Thorsten,

kurz ein paar erste Erläuterungen:

Zu Beginn des Programms werden alle Namen, Konstanten und Variablen deklariert (auf gut Deutsch "benannt"). Ab diesem Punkt weiß der Compiler, der den weiteren Text in Programmcode übersetzt, was er an der jweiligen Stelle einsetzen muss.

Die Definition mancher Konstanten wie in diesem Fall "On = 0" und "Off = 1" dient lediglich der besseren Verständlichkeit. Da die externen 3 Leuchtdioden jeweils zwischen den Prozessorpins und +5 Volt hängen, muss man die entsprechenden Ausgänge auf LOW (sprich "0") schalten, damit sie leuchten. Dieses führt aber bei großen Programmen zu Verwirrung, da man gemeinhin "1" als "AN" versteht.
Deswegen die einmalige Namensvergabe "On = 0". Ab diesem Punkt schreibt man immer nur "On" - der Compiler ersetzt diesen Namen durch die "0".

Vielleicht noch zwei weitere Erläuterungen:

Flash_led:
Led_status = On
Waitms 50
Led_status = Off
Waitms 200
Return




Dies ist ein sogenanntes Unterprogramm, also ein in sich selbstständiger Funktionsumfang. Diesen kann man beliebig oft aufrufen über den Befehl: Gosub Flash_led
Die angeschlossene LED blinkt einmal kurz und erlischt dann. Dieses geschieht in der Sequenz:
a) Name des Unterprogramms: Flash_led:
b) Anschalten der LED: Led_status = On
c) Warten für 50 ms: Waitms 50
d) Anschalten der LED: Led_status = Off
e) Warten für 50 ms: Waitms 200
f) Rückkehr aus dem Unterprogramm: Return


Die Definition von 3 Unterprogrammen dient dazu 3 an verschiedenen Pins angeschaltete LEDs blinken zu lassen.
Die Status-LED blinkt bei fehlerhaftem Empfängersignal. Die beiden übrigen LEDs blinken, wenn die Knüppelstellung größer bzw. kleiner als die Mittelstellung ist.


Ich hoffe das gibt ein bisschen ein Gefühl, wie einfach die schrittweise Kodierung der Abläufe geschieht.

Viele Grüße,
Johannes

23

Freitag, 19. Oktober 2012, 12:53

Hallo Johannes,
ist diese Zeile schon die ganze Arbeit um die Pulse-Länge zu messen,
oder steht dahinter ein weiteres Unterprogramm?

Pulsein Pulselenght , Pinb , 3 , 1 'Measure incoming pulselengte


Für mich sieht es so aus, als ob "Pulsein" ein Unterprogramm wäre, das die Variable "Pulselength" mit ihrem Wert belegt.
??? Was is nu wie ???

lg,
Frank
Modellbau ist Kunst - und manchmal Sport - und darf niemals als Arbeit gesehen werden!

Im Bau: The 24-Gun Frigate Pandora 1:128 - RC
Im Bau: Schlepper Goliath - RC

Beiträge: 2 494

Realname: Johannes

Wohnort: Gastarbeiter im Bajuwarischen Königsreich

  • Nachricht senden

24

Freitag, 19. Oktober 2012, 13:13

Hallo Frank,

genau richtig: Das Kommando "PULSEIN" ist ein fester Befehl in BASCOM, der einem am Anfang die nicht ganz triviale Erfassung eines Empfänger-Kanalimpulses extrem erleichtert.

Die Syntax ist: PULSEIN var , PINX , PIN , STATE

var ist der Name der Variable, die den gemessenen Impulswert speichert.
PINX ist der Name des Ports, an dem das Empfängerkabel angelötet ist. Beispielsweise PINA, PINB oder bei größeren Bausteinen auch PINC oder PIND.
PIN ist dann die Bit-Nummer des Anschlusses, liegt zwischen 0 und 7.
STATE dient zur Angabe, ob die steigende oder fallende Flanke gemessen wird.

In unserem Beispiel hängt das Empfängerkabel an Port B, also PINB - und dort an dem Anschluss Port B #3,. Wir messen die steigende Flanke, da wir einen positiven Impuls überwachen.
Somit ergibt sich halt: Pulsein Pulselenght , Pinb , 3 , 1.
Wenn alles klappt, dann steht nach Ausführung des Kommandos in der Variablen Pulselength der Wert des gemessenen Impulses in der Einheit 10 us. Bei Knüppel-Mittelstellung (1,5 ms = 1500 us) also der Wert 150.
Der Befehl PULSELENGTH liefert zudem noch eine optional nutzbare Information ERR. Wenn etws schief geht, also kein Impuls erkannt wird, wird das fehlerbit ERR gesetzt. Es kann dann im weiteren Programm ausgewertet werden.

Hinter PULSELENGTH steckt ein kleines Assembler-Programm, welches von BASCOM beim Compilieren (beim Übersetzen) im Code eingetragen wird.
Das, was in BASCOM mit einer einzigen simplen Befehlszeile geht, erfordert bei eigener Programmierung in Assembler ein Jonglieren mit locker 30 bis 50 Codezeilen.
Für die Ansteuerung von Servos gibt es übrigens einen vergleichbar einfachen Befehl.
All dies ist grandios in der Online-Hilfe von BASCOM dokumentiert.

Gruß,
Johannes

25

Freitag, 19. Oktober 2012, 13:29

Mensch Johannes,
Dann ist ja eigentlich die ganze Arbeit schon getan!
(Warum hab ich bloß so einen Bammel davor gehabt, das ganze anzufangen... :( )

So wie sich das anhört, werd ich ja dann nach kurzer Zeit auch in der Lage sein,
das nötige Programm für den 8-Kanlschalter zusammenzustricken.

lg,
Frank
Modellbau ist Kunst - und manchmal Sport - und darf niemals als Arbeit gesehen werden!

Im Bau: The 24-Gun Frigate Pandora 1:128 - RC
Im Bau: Schlepper Goliath - RC

  • »Patrick_487« ist der Autor dieses Themas

Beiträge: 1 441

Realname: Patrick

Wohnort: Sandersdorf-Brehna

  • Nachricht senden

26

Freitag, 19. Oktober 2012, 13:58

Hallo zusammen, :wink:

@ Johannes

erstmal ein großes Dankeschön das du das Programm gleich nochmal erklärt hast. Jetzt verstehe ich es auch. :lol: Bin schon gespannt wenn meine Bestellung kommt. Habe heute die Mail erhalten das
die Bestellung verschickt wurde.

@ Thorsten,

nix zu danken für die Links. Welches Buch wolltest du dir denn dann zum Geburtstag wünschen? Ich werde dann wohl ehr vielleicht bis Weihnachten mit dem Buch warten.

es grüßt Patrick :wink:
Aktuell im Bau: HLF 20/16 Beleuchtet u. Mercedes Benz
Auf der Warteliste: Simba 8x8, TLF 16/25

27

Sonntag, 21. Oktober 2012, 06:48

Hallo Patrick :wink:

Das Buch ist von Ulli Sommer " Mikrokontroller programmieren in Bascom Basic" Na mal schauen ob es auch was bringt. :nixweis: Wird wohl kommende Woche eintreffen. Jetzt muß ich mich noch schlau machen, ob ich meine Harware weiter nutzen kann.

Bis denne dann
Gruß, Torsten die Landratte :pc:

Im Bau: Steampunk: Valortanica und Geheimer Hafen, Krabbenkutter, DUKW 1:35 RC

  • »Patrick_487« ist der Autor dieses Themas

Beiträge: 1 441

Realname: Patrick

Wohnort: Sandersdorf-Brehna

  • Nachricht senden

28

Freitag, 28. Dezember 2012, 16:41

Hallo Torsten,

ich wollte mal nachfragen ob du dein Buch schon hast und wie du damit so zurecht kommst??

Ich habe bis jetzt auch ein wenig mal was programmiert. Aber mehr als ein kleines Lauflicht und Blitzer ist es nicht geworden.

Bin noch am überlegen ob ich mir ein Buch hole oder nicht. Da ich mich auch mit dem Timer auseinander setzten wollte, man findet im Netz zwar Anleitungen zum Timer, nur sind die meinst nicht sehr einfach erklärt.

weiß ja nicht wieviel dazu in deinem Buch steht.

es grüßt Patrick :wink:
Aktuell im Bau: HLF 20/16 Beleuchtet u. Mercedes Benz
Auf der Warteliste: Simba 8x8, TLF 16/25

29

Freitag, 28. Dezember 2012, 19:01

Hallo Patrick :wink:

Ja, das Buch ist schon eine Weile da. Es ist dann für den AtmelMega8 ausgelegt. Noch konnte ich mich nicht durchringen und mir auch so einen zuzulegen. Wollte eigentlich bei den Attinys bleiben. Zur Qualität des Buches kann ich somit nichts Genaues sagen, nur, daß mir ab und zu paar Erklärungen fehlen und ich denke die Struktur ist auch nicht logisch aufgebaut....
Bei der Suche im Netz bin ich aber auf eine interessante Seite gestoßen: gurgel mal nach: "Loetstelle" oder halvar(ät).at. Da wird auch ein Büchelchen empfohlen und Herr Penz hat auch ein kleines Tutorial geschrieben. Also ich fand es verdammt gut.
Vielleicht hilft es etwas.
Glückwunsch dann noch zu Deinen Erfolgen.... irgendwie juckt es mir in den Fingern, komme aber nicht mit der Zeit klar :bang:
Gruß, Torsten die Landratte :pc:

Im Bau: Steampunk: Valortanica und Geheimer Hafen, Krabbenkutter, DUKW 1:35 RC

Beiträge: 2 494

Realname: Johannes

Wohnort: Gastarbeiter im Bajuwarischen Königsreich

  • Nachricht senden

30

Freitag, 28. Dezember 2012, 20:16

Hallo zusammen,

nur um Missverständenissen vorzubeugen:
Das ganze Repertoire an ATTiny, ATMega und wie sie alle heißen, fußt auf ein und dem selben "Core", sprich Herzstück.
ATMEL bietet zwar Unmengen an Derivaten, diese sind aber alle von der gleichen Basis abgeleitet. Bei dem einen fehlt halt dieses, bei dem anderen jenes. Dann gibt es auch noch Typen, bei denen etwas zusätzlich hinzukam.
Die Basics freilich sind überall die gleichen. Dies gilt für den Standard-Befehlssatz ebenso wie für die Verwaltung von Speicher und Timern.

Sprich: hat man einmal etwas für den einen Controller am Laufen, dann kann man es mit kleineren Anpassungen auf einen anderen Typen übertragen.
Es ist also völlig Wurscht, ob man die ersten Gehversuche auf einem Tiny oder einem Mega8 unternimmt. Erst wenn die Programme umfassender werden, gilt es die spezifischen Unterschiede zu beachten.

Ich selber habe von jeher statt dem Studium von Fachliteratur immer bevorzugt mir Beispielprogramme Dritter anzuschauen und mich dann solange durchzuquälen, bis ich es geschnaggelt hatte. Im Netz finden sich unendlich viele Tutorials zum Einstieg. Einfach Progrämmchen für Progrämmchen eintippen, ans Laufen bringen, verändern und Spaß haben. Ein Handwerk lernt man ja auch nicht durch Bücher lesen, sondern durch üben, üben, üben...

Gruß,
Johannes

Werbung