Hallo Ich bin ein totaler Anfänger aber ich habe schon hin und wieder mal ein kleines Programm in Assembler geschrieben. Ich habe jetzt eine kleine Relaisschalteinheit gebaut, ganz primitiv mit einem ATmega 16, einem LCD, zwei Tasten und 7 Relais. Das LCD zeigt an den Schaltzustand an. Die kleine Software lässt sich über eine Taste steuern. Taste drücken "Schalter 1" noch mal Taste drücken "Schalter 2" usw. Die Taster hängen an int0 und int1. Nun möchte ich aber hin und her schalten können ( vor und zurück ) und bekomme das nicht gebacken. :-( Hat jemand einen kleinen Codeschnippzel für mich oder kann mir erklären wie man ein kleines up/down Menü mittels Interuptsteuerung in Assembler hin bekommt ? Komme einfach nicht mehr weiter. Danke schon mal im vorraus.
Gast
#2649650
Hi Also, Taster an Interrupt halte ich nix von. Mach doch folgendes, was sich schon tausendfach bewährt hat. Nimm das EVA Prinzip. Einlesen, Verarbeiten und ausgeben. Dazu schreibst du dir erst einmal eine Routine, die die Eingänge in der Programmschleife einlesen und entprellen. Dazu gibt es genügend beispiele und ich hab da auch schon einiges dazu geschrieben. Anschließend bildest du dir eine Flanke, die du im Pogramm verarbeitest. Flankenbit gesetzt, dann Aktion und Bit zurücksetzen. Nnun muss erst wieder der Taster erneut betätigt werden, um ein Flankenbit zu setzen. Mit dieser Flanke kannst du nun zählen oder auch andere Aktionen durchführeen, aber vermutlich wirst du wohl mit einem Wert verschiedene Programmbereiche bearbeiten wollen. Flanke zu erzeugen ist einfach. Eingänge lesen Exclusiv - Oder mit den zuletzt gelesenen Eigängen Wenn nicht "0" dann Flankenbit durch Und- mit altem Zustand ist fallende Flanke Und mit neuem Zustand ist steigende Flanke Anschließend neue Eingänge ablegen
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
Bei der Bearbeitung prüfst du, ob ein bit in den Variablen für die Flanken gesetzt ist und setzt es nach Bearbeitung zurück. Hier geh ich davon aus, du hast die Taster an VCC Sind sie nach GND geschaltet, drehst du R15 gleich nach dem Einlesen vom Port mit COM-Befehl um. Die Entprellung ist hier noch nicht beerücksichtigt. Gruß oldmax
Gast
#2649836
Taster über externen interrupt kommt nicht gut, such hier einfach mal nach einem Artikel namens entprellung. Für das Menü könnte ich dir Menü Nummern empfehlen, in Verbindung mit dem Befehl ijmp, sozusagen das durch ein flagbit welches angibt, das irgendeine taste gedrückt wurde, ein unterprogramm aufgerufen wird, welches zuerst den Befehl ijmp verarbeitet. An dem jeweiligen label kannst du dann auswerten, welche taste genau gedrückt wurde und. kannst dann entsprechend drauf reagieren. Bei deinem vorhaben ist die methode zwar nicht die kürzeste, aber irgendwann willst du sicher mal größere Menüs bauen, mit mehr tasten, da lohnt sich das dann. Beispiele für den ijmp Befehl findest du hier im tutorial bei den vergleichen. Mfg Dennis
Andreas K. schrieb: > wie man ein kleines up/down Menü mittels Interuptsteuerung in Assembler > hin bekommt ? Interrupt für Tasten ist die schlechteste Lösung... Bei dem Betreff > _Menüsteuerung mit zwei Tasten (Up/Down) in Assembler_ habe ich ein Verständnisproblem. Denn mit nur 2 Tasten stelle ich mir die Bedienung eines Menüs recht ätzend vor. Schreib' mal, wie Du Dir die Zuordnungen der Aktionen zu den Tastendrücken vorstellst, dann kann man Dir vielleicht konkret helfen. Bei der schwammigen Formulierung "Menü mit 2 Tasten" finde ich keinen Anfang. Durch Menüs am LCD navigiere ich gern mit 4 Tasten oder einem Dehgeber mit Taster. ...
steht doch da, eine Taste vor Relais +1, die zweite Taste zurück Relais -1 ...
Denis G: schrieb: > steht doch da, eine Taste vor Relais +1, die zweite Taste zurück Relais > -1 ... Richtig, das ist die Auswahl, welches Relais gemeint ist. Nun fehlt noch die Bedienung des ausgewählten Relais. ...
Denis G: schrieb: > steht doch da, eine Taste vor Relais +1, die zweite Taste zurück Relais > -1 ... und die dritte Taste: Relais betätigen Oder alternativ, wenn man nur 2 Tasten hat: erste Taste: Relais + 1, wenn 7 -> dann 0 zweite Taste: angewähltes Relais betätigen Bei 7 Relais ist das noch akzeptabel. Dreh und Angelpunkt des Ganzen ist aber, dass man ein Register dafür abstellt, das es die Nummer des 'aktiven' Relais hält. Und auch ja: Tasten über Interrups sind eine schlechte Idee
Karl Heinz Buchegger schrieb: > erste Taste: Relais + 1, wenn 7 -> dann 0 > zweite Taste: angewähltes Relais betätigen Richtig, dazu muss man aber den momentanen Zustand der Relais kennen. Mir wäre es aber lieber, wenn man das Ding blind bedienen könnte, also separate Tasten für Ein/Aus hätte. Denkbar und realisierbar wäre natürlich das Durchzappen mit kurzen Tastendrücken und das Schalten mit langen Tastendrücken. Aber ehe ich hier weiter herumspekuliere, sollte Andreas erstmal zu den bisherigen Antworten Stellung nehmen und die Aufgabestellung präzisieren. ...
Ja, die Spekulationen zeigen sehr schön, daß die Aufgabenstellung völlig unausgegoren ist. Was man sich nichtmal im Kopf überlegt hat, kann man natürlich auch nicht programmieren. Überleg Dir also erstmal in Ruhe, was Du eigentlich willst. Und dann schreib es in Worten hin, sodaß jeder es auch verstehen kann. Peter
Hallo Hannes.
Erst einmal vielen dank an alle die hier posten,. Mit soviel Resonanz
hatte ich gar nicht gerechnet.
Also mal kurz zu menem "Wunderkasten" Es handelt sich um ein
Antennenschalter
für Sende- und Empfangsbetrieb inkl. einem 50 W Dummyload. Der
Hardwareaufbau gestallte sich sehr aufwendig da 100w HF nicht den
Prozessor "zu nahe kommen durften". Diese Hürde habe ich gemeistert und
die HF macht auf dem Prossesor keinen Eindruck.
Sicherlich kann man so'n Ding viel einfacher bauen, aber das war ja
nicht meine Antrieb. Mir ging es hauptsächlich darum die Software dafür
zu schreiben. (learning by doing).
Zu meiner Menüvorstellung: 1. Vorwärts und rückwärts schalten (Up/Down)
2. In einer weiteren Entwicklungsphase
stelle ich mir vor ,in einem Untermenü,
die Eingänge zu Konfigurieren.Per längerem
Tastendruck in's Setup...... später.
Gut für mich, ist schon mal die Erkenntnis, das die Tastenabfrage per
interupt nicht der bessere Weg zu seien scheint.
Gast
#2650273
Hi, ...es ist definitiv der falsche Weg. Interrups sind dazu da um binnen kürzester Zeit (ns Bereich) auf Signale zu reagieren... Bei einem Taster leigst du im 10ms Bereich. Das macht man indem man pollt und ggf eine kleine Entprellung schreibt. Pin checken, zählen, wieder checken, wenn gleicher Zustand nach x checks, dann ist das Signal stabil und man nimmt den Taster als gedrückt an, wenn nicht, Zähler =0 und wieder checken.... so grob jedenfalls... JJ
Gast
#2650274
Hi >Gut für mich, ist schon mal die Erkenntnis, das die Tastenabfrage per >interupt nicht der bessere Weg zu seien scheint. Dann sieh dir das mal an: http://www.mikrocontroller.net/articles/AVR-Tutorial:_Tasten MfG Spess
Ja, diesem Artikel habe ich mir schon zum zigtem mal reingezogen aber irgend wie mach das kein Licht bei mir an. Warscheinlich sehe ich den Wald vor lauter Bäumen nicht.
Gast
#2650305
angucken hilft auch nichts - lesen und verstehen schon eher... ...so eine Taste flattert halt unter Umständen wenn man sie drückt, das ist doch auch ganz logisch bei einem mechanischem Kontakt, der "zittert" halt... Nun sieht du zu dass du deine Pinabfrage im Controller so gestaltest dass du etwa 5-10 mal schneller abfragst als so ein typischer Preller eben dauert...so hast du die möglichkeit mitzuzählen... Man fragt also den pin ab, wenn er high (high sei mal bei gedrücker Taste)wird und das über x Runden bleibt ist der Tastzustand stabil, wenn er zwichendurch wieder low wird, zählt man wieder bei 0 los wenn er wieder high wird. Erst wenn x erreicht ist, ist klar, der Zustand ist stabil und man kann etwas machen... Daran gibts nichts nicht zu verstehen... JJ
Gast
#2650317
Hi
>Daran gibts nichts nicht zu verstehen...
Doch... gerade das ist es immer wieder, was hier nicht verstanden wird,
sonst käme niemand auf die Idee, einen Taster per ISR abzufragen. Oder
die Frage stellt, warum ein Zähler von Tastendrücken "Zufallszahlen"
generiert.
Kontaktprellen muss man verstehen, dann weiß man auch, wie man damit
umgehen muss.
Gruß oldmax
Gast
#2650326
Jens schrieb: > Man fragt also den pin ab, wenn er high (high sei mal bei gedrücker > Taste)wird und das über x Runden bleibt ist der Tastzustand stabil, wenn > er zwichendurch wieder low wird, zählt man wieder bei 0 los wenn er > wieder high wird. Erst wenn x erreicht ist, ist klar, der Zustand ist > stabil und man kann etwas machen... Komische Erklärung... wahrscheinlich versteht das nur ein insider... 1. Die meisten Tasten liegen doch auf Masse, also Low 2. Bedeutung X Runden 3. Wer zählt 4. Bedeutung X erreicht Könntest Du auf meine Punkte näher eingehen? Vielleicht ein Flußdiagramm dazu? Ich würde es gerne verstehen. Ich bin noch zu jung um zu sterben. :-)))
Gast
#2650328
Hi oldmax,
>>Kontaktprellen muss man verstehen...
du meinst wohl eher wie man dieses Problem löst.
Die Frage kommt nicht auf weil das Kontaktprellen nicht verstanden wird
sondern weil es meistens eines der ersten Dinge ist über die man
stolpert wenn man gerade am Anfang steht. Dahinter steckt die
Anforderung der Umsetzung des erkannten Problems in eine Softwarelösung
- das hat mit verstehen aber meiner Meinung nach weniger zu tun...
JJ
Andreas K. schrieb: > Zu meiner Menüvorstellung: 1. Vorwärts und rückwärts schalten (Up/Down) OK. Ich hab mir dein Ausgansgposting noch mal durchgelesen. Es scheint so zu sein, dass du etwas machen willst, was man zb in der Windowsprogrammierung einen 'Radio Button' nennt. Das heißt bei dir: Von 7 Ausgängen ist nur einer aktiv. Mit den Tasten schaltest du den aktiven Ausgang um 1 weiter bzw. zurück. Ist also zu einem beliebigen Zeitpunkt der Ausgang 2 aktiv, dann bewirkt * ein Tastendruck 'Up': Ausgang 2 wird abgeschaltet. Ausgang 3 wird eingeschaltet * ein Tastendruck 'Down': Ausgang 2 wird abgeschaltet Ausgang 1 wird eingeschaltet Ist es das, was du dir unter 'Menüsteuerung' vorstellst? Da führt dann in der Tat kein Weg an einer sauberen Entprellung vorbei. Links wurden dir ja schon genannt. Und ich würde nach wie vor empfehlen in einem Register die Nummer des 'aktiven Ausgangs' zu halten. Diese Nummer wird entsprechend bei Tastendruck verändert und die Auswerteroutine schaltet dann die entsprechenden Relais ein/aus.
Hallo "- -", das erklärt sich mit dem Tutorial und dem Bild: http://www.mikrocontroller.net/articles/AVR-Tutorial:_Tasten http://www.mikrocontroller.net/wikifiles/2/26/Entprellen.png Ok ?
Gast
#2650334
1. Die meisten Tasten liegen doch auf Masse, also Low die meisten tasten sind eckig oder rund - sie liegen auf der Platine. Sie sind im Grundzustand geöffnet, unterbrechen also den Stromkreis. 2. Bedeutung X Runden Ist das eine Frage? 3. Wer zählt ein in Software definierter Zähler? Oder wolltest du dich mit einer Stoppuhr daneben stellen? 4. Bedeutung X erreicht steht oben. >>Vielleicht ein Flußdiagramm dazu? Poste mal einen Ansatz deines Flussdiagrammes! >>Könntest Du auf meine Punkte näher eingehen? Jemanden der keinen Namen hat, antworte ich eigentlich garnicht... JJ
Gast
#2650337
Uwe S. schrieb: > Ok ? Nein, die Bilder und den Artikel dazu habe ich schon mehrfach gelesen. Jens hat mir einen Anstoß gegeben. Nur die Punkte die ich aufgezählt habe sind mir nicht ganz klar. Es muß doch dafür ein Schema geben wonach ich mich richten kann.
Gast
#2650343
Jens schrieb: > 1. Die meisten Tasten liegen doch auf Masse, also Low > die meisten tasten sind eckig oder rund - sie liegen auf der Platine. > Sie sind im Grundzustand geöffnet, unterbrechen also den Stromkreis. > 2. Bedeutung X Runden > Ist das eine Frage? > 3. Wer zählt > ein in Software definierter Zähler? Oder wolltest du dich mit einer > Stoppuhr daneben stellen? > 4. Bedeutung X erreicht > steht oben. >>>Vielleicht ein Flußdiagramm dazu? > Poste mal einen Ansatz deines Flussdiagrammes! >>>Könntest Du auf meine Punkte näher eingehen? > Jemanden der keinen Namen hat, antworte ich eigentlich garnicht... Also doch nur für insider?
Gast
#2650349
...nein. als erstes bitte mal eine vollständige Frage stellen. Wo hakt es denn mit dem Verständnis? Oder ist es vielleicht so, das die Vorkenntnis wie ein Controller arbeitet nicht vorhanden ist? Wir alle hier können nicht erahnen was du nicht verstehst, dazu muss man erstmal verstehen was nicht verstanden wird... Diese Erkenntnis ist die Basis um hier im Forum eine vernünftige Antwort zu bekommen :-) JJ
-_- schrieb: > Uwe S. schrieb: >> Ok ? > > Nein, > die Bilder und den Artikel dazu habe ich schon mehrfach gelesen. > Jens hat mir einen Anstoß gegeben. Nur die Punkte die ich aufgezählt > habe sind mir nicht ganz klar. Was daran ist unklar? Taster werden sinnvollerweise so eingebaut, dass beim Drücken der Taster geschlossen wird und so der Taster eine Verbindung nach Masse herstellt. Um das Prellen auszuschalten benutzt man die Information * Taster prellen nicht ewig. Irgendwann hat sich die Feder im Taster beruhigt und bleibt dann im Zustand 'geschlossen'. * Was wird man daher tun? Man wird mit dem Auftreten des ersten Kontaktes diesen nicht sofort als 'Taster geschlossen' werten, sondern einfach mal eine gewisse Zeit abwarten und nachsehen, was da so am Eingang passiert. Ändert sich der Pegel in diesem Zeitraum wieder, dann prellt die Taste immer noch. Findet man den Eingang aber eine gewisse Zeit lang in immer demselben Zustand vor (und ist diese Zeit größer als das vermutete Prellen), dann kann man davon ausgehen, dass sich alles beruhigt hat und die Taste jetzt (für die nächste Zeit) dauerhaft als geschlossen zu betrachten ist. Denn: Kein Mensch kann eine Taste so schnell drücken und wieder loslassen, dass man das mit Prellen verwechselt. Prellen findet im Millisekunden bereich statt, Drücken und Loslassen dauert aber meistens mit Sicherheit länger als 1/10 Sekunde. Und das ist eine völlig andere Zeitdimension.
Hallo - Namen kennen wir jetzt nicht -. Ich hatte mich in den Anfängen auch mit Entpressen beschäftigt und dann auf die Erklärungen in den beiden Thread zurückgegriffen: Beitrag "Tasten entprellen - Bulletproof" Beitrag "Entprellen für Anfänger" Nun verwende ich die Routinen von Peter Dannegger in einer angepassten Version in "C" und denke über das 'Problemchen' nicht mehr nach. Nur noch das Modul einbinden, die Tasten und den Port definieren, den Timer auf das Debounce-Intervall einstellen und los geht es. Ich verwende meistens einen Timer (0) mit 1ms und das Debounce-Intervall von 10ms. Je nach Anwendung aktiviere ich dann noch Defines um die Repeat (get_key_short() + get_key_long()) oder die Release Funktionen (get_key_release()) frei zu schalten. Vielleicht hilft dir das auch weiter. Ok ?
Andreas K. schrieb: > Zu meiner Menüvorstellung: 1. Vorwärts und rückwärts schalten (Up/Down) Ich vermute mal, Du meinst damit einen Umschalter, d.h. es ist immer nur ein Relais gezogen. Dann müßte man noch wissen, erfolgt die Umschaltung unterbrechend oder überbrückend. Oder soll die Umschaltung ohne Last erfolgen? D.h. die HF wird ausgeschaltet, das alte Relais abgeschaltet, das neue zugeschaltet und dann wieder die HF ein. Und bei jedem Schritt einige 100ms warten. Das wird dann eine Statemaschine. Peter
Hallo Karl Heinz Dein Ansatz sieht viel verspechend aus. Ich werde das mal daran probieren.. An Peter Der Amateurfunk ist keine zeitkritische Anwendung :-) Geschaltet wird nur lastfrei ( 1000 Euro Hardware werden es danken !) und wenn es ein,zwei oder drei sekunden dauert ist das durchaus ok. An sonsten glaube ich dass das jetzt hier vollkommen abschweift. Es geht nur um ein programmtechnisches hin und herschalten ! Relais 1 an, Relais 1 aus, Relais 2 an ..... usw.
Hallo Andreas, kannst Du in "C" programmieren ? Dann könnte auch dieser Scheduler [1] und die tolle Idee dahinter, die richtige zeitliche Abfolge von Programmfolgen sehr erleichtern. Man(n) muss aber erst mal hinter die Idee des Beispielcodes kommen. Sehr zu empfehlen ! Link: [1] Beitrag "Wartezeiten effektiv (Scheduler)"
Andreas K. schrieb: > An sonsten glaube ich dass das jetzt hier vollkommen abschweift. Es geht > nur um ein programmtechnisches hin und herschalten ! Wie Du meinst. Ich wollte nur drauf hinweisen, was Dein Programm alles beachten muß. Wir haben ähnliche Anwendungen, Hochspannung (bis 30kV) muß lastfrei umgeschaltet werden, sonst kleben die Relais. Der MC überwacht alle Netzteile, daß ja nicht ein Relais unter Spannung schaltet. Er macht also eine komplexe Ablaufsteuerung, die auch Wartezeiten beinhaltet, bis die Netzteile vollständig entladen sind. Dann schaltet er um und fährt die Netzteile wieder langsam hoch. Peter
Gast
#2650634
Hi Ich will da noch mal mit einsteigen. Macht es ihm doch nicht so schwer und lasst ihn das ruhig in Assembler machen. Ist doch gar nix dabei. Also, deine Tasten schalten nach GND. Ist ja auch praktisch, da kannst du die internen Pull-Up Widerstände des Controllers nutzen. Wie weit bist du mit deinem programm. Timer und IO-Parametrierung klar? Ich zeig dir mal, wie ich das löse. Meine Programmschleife besteht aus Loop: gefolgt von Read_IO mit Chk_IO teste ich die Ereignisse und mit Write_IO setze ich die Ausgänge. kurz
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
Die Initialisierung hab ich mal weggelassen, aber ich setze vorraus, das deine Timer_ISR im ms-Takt aufgerufen wird. Die Read_IO hab ich ja schon einmal beschrieben, aber jetzt mal mit einer "Entprellung".
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
63 | |
64 | |
65 | |
66 | |
67 | |
68 | |
69 | |
Nachn dieser Routine hast du die Eingänge von Port D 2- 7 in den Variablen "Event_To_1" und "Event_to_0" stehen, wenn das prellen vorbei ist. Sicher,von den Befehlen her geht's auch kompakter, aber ich denke, so ist es leichter nachvollziehbar. Alles, was du jetzt in Chk_IO machen musst, ist die Auswertung der Flankenbits. Du kannst beispielsweise mit dem Betätigen des Tasters ein Relais abschalten und beim loslassen eins vor oder zurückschalten und Relais wieder zuschalten. Als Ausgang definier ich mal Port B. Wenn du keinen externen Quarz dran hast (bezieht sich auf Atmega8), hast du ein volles Byte, also 8 Ausgänge. Auch hier verwendest du eine Variable für die Ausgangsbits als Zwischenpuffer. Da dein Programm nur auf die Flags reagiert, wird die Schleife ständig durchlaufen, das Ereignis aber nur einmal bearbeitet.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
Nun, es sollte klar sein, habe ich eine Taste gedrückt, ist un der Variablen "Ausgabe" kein Bit gesetzt. Ich hätte genausogut einfach eine 0 hinein schreiben können. Wenn aber nicht alle Bits benötigt werden, kann ja sein, sollte auch nur das Bit vom Schieberegister ausgeblendet werden. Ok, nun sind wir schon fast durch
1 | |
2 | |
3 | |
4 | |
5 | |
Fehlt eigentlich nur noch die Timer-ISR. Die solltest du so einstellen, das du den Interrupt jede msek. ausführst. Dann einfach entsprechend reservierte Register hochzählen, so das du beliebige Zeiten erhälst. z.B. ich mach dir das mal mbis zur Sekunde, ohne jetzt die Register zu retten,
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
Sollten Fehler drin sein, ich hab es nicht getestet, ist nur mal so schell runter geschmiert. Sollte dir aber bei deinem Problem helfen, den richtigen Ansatz zu finden. Gruß oldmax
Aber Hallo :-) Das ist der Lösungsansatz den ich gesucht habe.!!! Danke Dir Oldmax. Es gibt sicherlich auch andere Wege, Aber den durchschaue ich :-) An alle C Programmierer: ... warum Assembler ? Na ja, ich finde Assembler einfacher als C und man kommt mit weniger Aufwand zum Ziel. Die Größe des Programmcodes spricht Bände. Auch die ewige Tipperei des Makefiles macht mich schlapp. Da ich absolut kein Windows benutze ist Assembler die erste Wahl für mich, Außerdem glaube ich nicht das es irgend etwas gibt das man nicht in Assembler programmieren kann. Meine Unwissenheit tut da nichts zur Sache.
Andreas K. schrieb: > An alle C Programmierer: > ... warum Assembler ? Na ja, ich finde Assembler einfacher als C und man > kommt mit weniger Aufwand zum Ziel. Die Größe des Programmcodes spricht > Bände. Auch die ewige Tipperei des Makefiles macht mich schlapp. Da ich > absolut kein Windows benutze ist Assembler die erste Wahl für mich, > Außerdem glaube ich nicht das es irgend etwas gibt das man nicht in > Assembler programmieren kann. Meine Unwissenheit tut da nichts zur > Sache. Also das sind ja wohl alles Witzpunkte. Wenn du wenigstens vernünftige Argumente bringen würdest ;-) - Weniger Aufwand zum Ziel? Ich wette mit dir, dass du weniger Lines of Code in C hast, bei gleichem Programm - Größe des Programmcodes ist vor 10 Jahren die Waffe der Assemblerjünger gewesen. Außerdem kriegst du für nichtbenutzten Flash kein Geld zurück. - kein Windows? Sondern? Linux? Das ist doch mit GCC die C-Plattform schlecht hin - Makefiles schreibt man, wenn überhaupt ein mal. Oder man lässt sie sich automatisch generieren. Das kann sogar AVR-Studio. - Ich glaube nicht, dass es irgendwas nicht gibt, was man in C programmieren kann. Du hast nur keine Lust die Sprache zu lernen, was (für mich) Ok ist. Aber schiebe hier nicht so einen Unsinn vor.
Na ganz so ist dem nicht :-) Ich habe mit C Angefangen und bin dann bei Assembler gelandent, und ja es gibt kein Geld zurück, und ja du hast recht Linux ist die Oberfläche für C. WinAVR ist nur Portiert. Trotzdem komme ich mit ASM besser zu recht. Es gibt für alles ein für und wieder. Am Ende muss das jeder für sich entscheiden. Einen schönen Abend wünsche ich Dir noch Simon.
Andreas K. schrieb: > Am Ende muss das jeder für sich entscheiden. Wohl wahr! Jedem so wie er das will. > Einen schönen Abend wünsche ich Dir noch Simon. Dito
Andreas K. schrieb: > Trotzdem komme ich mit ASM besser zu recht. Ich auch... Hier mal ein 4 Jahre altes Beispiel für so etwas Ähnliches (kein Antennenumschalter, sondern ein Antennen-Anpassgerät, dass verschiedene Spulen in die Zuleitung einschleift bzw. wieder herausnimmt. Statt LCD wird allerdings Siebensegmentanzeige benutzt. ...
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.

