Forum: Mikrocontroller und Digitale Elektronik Pascal lernen für Dummies =) ?


von Mino T. (mino1337)


Lesenswert?

Hallo,

Ich bin begeisterter Hobbyelektroniker, ich habe mir viel wissen über 
verschiedene Lötverfahren, alle möglichen Bauteile und deren Verwendung 
und fast allem was dazugehört in vielen verschiedenen Berreichen 
angeeignet.

Nur jetzt bin ich an ein Thema gestoßen dass zwar sehr interressant ist 
und mir viele neue Möglichkeiten bieten würde aber mit dem ich mich sehr 
schwer tue, nämlich Microcontroller und deren Programmierung.

Was ich alles brauche um Microcontroller zu verwenden/Programmieren habe 
ich ohne weiteres gelernt und besorgt jetzt könnte es eigentlich 
losgehen wenn da nicht dass lästige aber unumgängliche Programmieren der 
selbigen wäre.

Ich hab nen bisschen was schon ausprobiert, Assembler und C um genau zu 
sein nur geht Assembler einfach nicht in meinen Kopf rein und ist auch 
sehr Fehleranfällig (zumindest wenn man es nicht kann) und für C gibt es 
wohl kein HowTo unter 500 seiten die man nicht nur lesen sondern auch 
verstehen muss.

Da ich gern schnelle erfolge habe und nunmal nicht Hauptberuflich 
Programmieren will (was ich mit erlernen von C ja könnte) habe ich nach 
ALternativen gesucht (sogar nach einem Bausteinprogramm zum 
Programmieren von MCs). EIn solches programm habe ich zwar nicht 
gefunden aber mir wurde gesagt dass Pascal wohl die einfachste 
(abgesehen von Assembler) Programmiersprache ist um einen 
Microcontroller zu sagen was er tun soll.

Was ich nicht gefunden hab ist ein Tutorial welches sich konkret damit 
befasst AVR Microcontroller mit Pascal zu Programmieren.

Dass mag zwar sehr faul klingen aber ich möchte wirklich nicht mehr 
lernen als Microcontroller von AVR mit Pascal (oder auch einer 
einfacheren Programmiersprache) zu Programmieren.

Wenns Natürlich noch eine Alternativlösung gäbe wie zB. ein 
Bausteinprinzip oder eine Codeschnipselansammlung wo es für jedes 
Problem einen Schnipsel gibt wäre ich natürlich sehr dankbar für einen 
Fingerzeig =).

Ansonsten vielen Dank für Lösungen und Anregungen =) ...

von pasCal (Gast)


Lesenswert?

es macht keinen unterschied ob du in c oder pascal programmierst...

ich programmiere zwar lieber in pascal (pc), jedoch sind die 
unterschiede die für dich als anfänger zu klein. du solltest µc in c 
programmieren.. pascal compiler bekommst du nicht gratis und schon gar 
nicht wenn du viele verschiedene µc programmieren willst.


"einfacher" ist allerhöchstens die syntax, das zu programmierende 
problem wird dadurch aber nicht kleiner..


so schwer ist das garnicht.

gucke dir variablen, funktionen, schleifen, if, case/switch und shift 
an. damit kannst du schon viel anfangen und schwer ist das nur gaaanz am 
anfang... später musst du wie als kind mit deinem lego koffer alles so 
zusammen setzen wie du meinst.. kinder bauen autos auch nicht gleich 
zusammen, autos sind das trotzdem.


grüße

von Oliver H. (Firma: OliverHeinrichs.de) (dobson)


Lesenswert?

Mino Taurus schrieb:
> sogar nach einem Bausteinprogramm

Gibt es. Nannte sich... Flowcode

Mino Taurus schrieb:
> für C gibt es
> wohl kein HowTo unter 500 seiten

Da stimme ich voll und ganz zu. Tue mich da selber sehr schwer.

Mino Taurus schrieb:
> (oder auch einer
> einfacheren Programmiersprache)

Wie wäre es mit BASCOM?

Und Assembler ist wirklich nur am Anfang schwer. Das Beispiel mit den 
Legos ist da sehr treffend.

von Rubelus (Gast)


Lesenswert?

Aber nur mal so als Tipp:

MikroElektronika MicroPascal - Gibt es als 2KB Limit Version- zumindest 
zum reinschnuppern reicht das schonmal und MikroE ist noch relativ 
umgänglich.

http://www.mikroe.com/eng/products/view/227/mikropascal-pro-for-avr/

von Klaus W. (mfgkw)


Lesenswert?

Pascal ist als Sprache eine saubere Sache, und ich würde sie
jederzeit gerne empfehlen.
Der Haken dabei: sie ist in der MC-Welt viel zu exotisch, kaum
jemand nimmt etwas anders als C oder Assembler.

Das wäre kein Hinderungsgrund, sondern eher Ansporn, für
jemanden, der mutig ist und offen für Neues.

Solange man aber mit der Materie nicht so recht warm geworden
ist, ist man viel auf Hilfe in Foren etc. angewiesen.
Und da wird dir kaum jemand helfen können, wenn du so etwas
nimmst.
Das ist mit BASIC schon schwierig, aber der Mainstream ist
C und ASM.
So eklig Mainstream generell ist, so hilfreich ist es dagegen,
wenn man Hilfe braucht.

von Christian Erker (Gast)


Lesenswert?

Hallo,

das "schwere" am Programmieren ist die richtige Denkweise, sprich, das 
was man will in einen auf dem µC verwendbaren Algorithmus umzusetzen. 
Gerade hier sind die Unterschiede in C und Pascal, zumindest für das was 
dich am Anfang interessiert, marginal. Basic ist auch nur einfacher wenn 
du die fertigen BASCOM-Module verwendest.

Anfänger fragen oft, welche Programmiersprache sie lernen sollen. Das 
ist strenggenommen eher vollkommen egal, nur das C können bei 
Bewerbungen etwas besser aussieht. Denn wie bereits erwähnt, die 
Denkweise ist das Können und macht ca. 90-95% der Programmierarbeit aus, 
das umsetzen in die jeweilige Syntax ist vergleichsweise stupide.

Z.b. das ganz einfache Beispiel die Summe eines Einkaufszettels zu 
bilden, du musst erst wissen, was will ich eigentlich, wie mach ich das 
im richtigen Leben.

"Ich gehe die Liste der Preise von oben nach unten durch und addiere 
alle zusammen, dazu kann ich einen Stift verwenden der immer auf den 
Preis zeigt mit dem ich gerade rechne

Der nächste Schritt ist, wie sind meine Daten abgebildet in der 
Software:

- Listen sind generell Felder/Arrays, die sind in C und Pascal 
grundsätzlich identisch aufgebaut (wobei Pascal einige nette 
Bequemlichkeiten mehr bietet):

feldname[index]

- Für den Endpreis reicht einen simple Variable..

Wenn das klar ist kannst du dir (später machst du das gedanklich im 
Hintergrund bei einfachen Sachen) ein Flußdiagramm zeichnen
1
****************************
2
* Endpreis auf Null setzen *
3
****************************
4
            I
5
**********************************
6
* Zeiger auf ersten Preis setzen *
7
**********************************
8
            I
9
*********************************************************
10
* Preis auf den der Zeiger steht auf den Preis addieren *
11
*********************************************************
12
            I                                         I
13
************************************                  I
14
* Zeiger auf nächsten Preis setzen *                  I
15
************************************                  I
16
            I                                         I
17
************************                              I
18
* Wiederholen bis Ende *------------------------------- 
19
************************
20
            I
21
*********************
22
* Endpreis ausgeben *
23
*********************

Jetzt kannst du das schon fast direkt so in Code übersetzen, als 
Beispiel für 20 Preise:
1
float preise[20];
2
3
preis[0] = 3.43;
4
preis[1] = 10.39;
5
[...]
6
preis[19] = 13.49;
7
8
9
float endpreis;
10
int preiszeiger;
11
12
endpreis = 0;
13
14
for (preiszeiger=0;preiszeiger<20;preiszeiger++)
15
{
16
  endpreis = endpreis + preis[preiszeiger];
17
}

Das war jetzt fix für 20 Preise und die siehst, dass die Umsetzung in 
wirklichen Code schon bei dieser einfachen Sache sehr wenig ist.

Ich hab das ganze jetzt zusammengefasst, das ist z.B. eine for-Schleife, 
die wiederholt ihren Inhalt eine vorher bekannte Anzahl Wiederholungen. 
Es gibt auch das (while) oder (do..while) Konzept, das bis zu einem 
gewissen Zustand wiederholt.

Aber, auch diese Konstrukte gibt es in fast allen Sprachen nahezu 
identisch, du kannst sehr lange abstrakt und sprachunabhängig arbeiten, 
die Umsetzung in Syntax ist immer der letzte und unspektakulärste 
Schritt.

Wenn man programmieren kann, ist das Beherrschen einer neuen Sprache in 
ihren Grundzügen eine Sache von 2-3 Wochen. Die Details 
selbstverständlich erst nach Monaten-Jahren.

Gruß,
Christian

von Karl H. (kbuchegg)


Lesenswert?

Mino Taurus schrieb:

> Ich hab nen bisschen was schon ausprobiert, Assembler und C um genau zu
> sein nur geht Assembler einfach nicht in meinen Kopf rein und ist auch
> sehr Fehleranfällig (zumindest wenn man es nicht kann) und für C gibt es
> wohl kein HowTo unter 500 seiten die man nicht nur lesen sondern auch
> verstehen muss.

Wenn du mitlerweile zur Überzeugung gekommen bist, es vielleicht doch 
mit C zu versuchen:
Besorg dir einen C Compiler - und zwar für den PC.

Weiters in der nächsten Buchhandlung ein beliebiges C-Buch. Für PC gibt 
es die wie Sand am Meer. ALlerdings machst du um alles einen großen 
Bogen, was dir auf dem Titeleinband verspricht, das alles ganz einfach 
wäre und du in 5 Tagen zum Meisterprogrammierer ausgebildet wirst.
Der Klassiker 'Kernighan&Ritchie Programmieren in C' ist zb ein Buch, 
welches gerne genommen wird und auch ein empfehlenswertes Buch ist.

Dieses Buch arbeitest du durch, bis du zum Kapitel über Dateibearbeitung 
kommst. Das wird so ungefähr nach dem ersten Drittel sein.

Wenn du diesen Buchinhalt intus ist und auch auf dem PC geübt hast, dann 
hast du ein erstklassiges Rüstzeug um auf einen µC zu wechseln und dich 
dort mit den spezifischen µC Dingen vertraut zu machen, die es so in der 
PC-Welt nicht gibt. Das ist dann aber nicht mehr weiter schwer, weil 
dich dein Grundwissen da durchträgt.

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.