ECU für einen Rasenmäher - wer wäre interessiert? Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte
|
Autor |
ECU für einen Rasenmäher - wer wäre interessiert? |
|
|
|
|
BID = 524377
Her Masters Voice Inventar
Avatar auf fremdem Server ! Hochladen oder per Mail an Admin
Beiträge: 5308 Wohnort: irgendwo südlich von Berlin
|
|
Mir ist eigentlich egal womit ich programmiere. Assembler ist OK, C ist mir fürn Controller zu umständlich, BASIC ist bequem und war der Einstieg. Ich hatte aber auch schon mit graphischen Programmieroberflächen zu tun oder mit wüsten Ablaufplänen in speziellen Tabellen. Man nimmt einfach das, was da ist und/oder womit man gut zurechtkommt (so man denn die Wahl hat). Warum sollte sone einfache Motorsteuerung nicht mit BASCOM zu machen sein? Es geht ja nicht um Hochleistungstuning sondern um Ersatz für einen wackelnden Fliehkraftregler. Sowas hab ich sogar schonmal in einem selbstgebauten Blockheizkraftwerk mit einer alten C-Control drin gesehen. Man glaubt es kaum aber es funktioniert! Das Ding schaltet den Motor an und aus, steuert die Drehzahl je nach Last und wertet nebenbei noch einige Temperaturen aus.
_________________
Tschüüüüüüüs
Her Masters Voice
aka
Frank
***********************************
Der optimale Arbeitspunkt stellt sich bei minimaler Rauchentwicklung ein...
*********************************** |
|
BID = 524381
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
|
Moin Moin,
Zitat :
| [...]Assembler-Fetischisten (DonComi,Jornbyte u.a.)[...] |
Früher stärker als heute. Dennoch programmiere ich öfters in AVR-Assembler, wenn es nicht in Klimmzügen enden soll. Es ist imho wesentlich einfacher, Assemblerprogramme einfach, effektiv und schnell zu schreiben, als so einen Murks erzeugen zu lassen.
Allerdings ist der avr-gcc mit seiner Toolchain fast so gut, wie ein erfahrener Assemblerprogrammierer, für andere Zielsysteme sowieso, da der AVR-Assembler vergleichsweise einfach ist und viele Instruktionen genaugenommen gemogelt und doppeltgemoppelt sind, einige werden wissen, was ich meine. sbr und ori oder sehr viele andere Instruktionen haben sinnigerweise den gleichen Instruktion-Code (und wenn das Zielregister und die Konstante gleich sind sogar den gleichen Opcode ).
Mittlerweile, seit ca. 2 Jahren schreibe ich fast ausschließlich in C, hat gewisse Gründe und Vorteile. Nachteile bügel' ich mit Inline-Assembler und/oder externer Assemblerdatei aus. So kann man ganze Programmteile in reinem Assembler schreiben und beim Linken aus dem C-Programm auch benutzen.
Da kommen auch noch andere Sachen hinzu: IDEs werden komplett vermieden. Viel zu umständlich, es reicht ein Terminal, ein Editor und ein Makefile. Programmieradapter wird im Makefile mit einbezogen und ein
$ make all write
Kompiliert, Linkt, Assembliert und Programmiert den AVR.
Zitat :
| Die Syntax von C bereitet mir schlicht schlechte Laune |
Schade.
Dann müsstest du von C++-Syntax bestimmt schon Kopfschmerzen bekommen...
Der Compiler für C hat verloren. Die Sprache ansich hat damit nix zu tun.
Zitat :
| sondern um die Abarbeitung. |
Im Sinne von Geschwindigkeit?
Nun ja, es wird ja wesentlich mehr Kode produziert, als man selbst als Problemlösung geschrieben hat. Größer wirds also, darum gings aber ja auch nicht.
Bevor main() aufgerufen wird, wird schon ordentlich geschuftet. Das haut ordentlich in die Laufzeit mit rein. Dafür wird eine Umgebung geschaffen, in der dennoch recht luxeriös C-Programme laufen. Und das, obwohl eine andere Architektur als normalerweise zu Grunde liegt (getrennter Daten- und Programmspeicher, etc.).
Du kannst ja auch sehr einfache Programme schreiben, die laufen, ohne dass du eine Interruptvektorentabelle hast oder den Stack initialisierst. Manchmal braucht man es halt nicht... .
Zitat :
|
Zum Motor: wenn es was werden soll, dann nur in ASM. Nu macht mal..... |
Na, wenn man weiß wie, wird auch unter C sehr, sehr fixer Kode erzeugt. Und jenachdem, wie schnell es hier sein muss, kommt C (bzw. der compiler...) locker hin. Und sonst lagert man halt ein paar ISRs und ein paar Routinen assemblermäßig aus und macht den Rest in C. So zumindest mach ich das..
Abschließend:
Also, Assembler für AVRs zu können, ist essentiell, um gute und effiziente Programme zu schreiben. Aber wenns manchmal, aber im Großen und Ganzen schnellen, optimierten Kode geht, kann man auch C einsetzen, mit dem avr-gcc. Wie andere sind, kann ich nicht beurteilen. Und außerdem schließt ja das eine das andere nicht aus .
@Projekt:
Wie gesagt, obs sinnvoll ist, keine Ahnung. Aber stellt euch auf eine gute Fehlerkorrektur und Entstörung ein. Ich sehs schon kommen: "Uoh, alle x ms startet mein AVR neu. Worum liegt das?" .
Edit:
Sry, ab und an mal leicht verpeilt. Das liegt u.A. daran, dass ich sehr müde bin .
_________________
[ Diese Nachricht wurde geändert von: DonComi am 28 Mai 2008 2:52 ] |
|
BID = 524388
ElektroNicki Inventar
Beiträge: 6429 Wohnort: Ugobangowangohousen
|
Oha, der Thread kommt in Fahrt.
Nun gut, ich wollte fürs Erste mal nur Drehzahl, Sollwert und evtl. Lambda zum avr führen, anhand dessen soll der avr dann mit Servos am Vergaser Sprit und Luftmenge einstellen. Die noch aufzutreibende Lambdasonde soll dafür sorgen, dass der avr weiß, warum die Istdrehzahl unter dem Sollwert (falls es denn so ist) liegt, und je nachdem mehr (Motor verdurstet) oder weniger (Motor säuft ab) 'Gas' gibt.
_________________
|
BID = 524394
Ltof Inventar
Beiträge: 9331 Wohnort: Hommingberg
|
Hast Du denn im Detail verstanden, wieso die aktuelle Regelung schwingt?
Falls nicht: was lässt Dich glauben, dass Dein Gebilde kein schwingfähiges System wird?
Schon mal was vom geregelten "Wurm-Katalysator" gehört?
Gruß,
Ltof
_________________
„Schreibe nichts der Böswilligkeit zu, was durch Dummheit hinreichend erklärbar ist.“
(Hanlon’s Razor)
|
BID = 524396
ElektroNicki Inventar
Beiträge: 6429 Wohnort: Ugobangowangohousen
|
a)nein
b)da werd ich mit Verzögerungen experimentieren müssen...
c)nein. Erzähl.
_________________
|
BID = 524408
Ltof Inventar
Beiträge: 9331 Wohnort: Hommingberg
|
zu c:
Das ist ein Nachrüstkat, bei dem die Lambdaregelung über einen Luftbypass am Vergaserfuß gemacht ist.
Eine "Verzögerung" (Dämpfung) kannst Du auch an den vorhandenen Regler machen. Ob das hilft? Regelungstechnik ist kompliziert!
Ich würde den Zündzeitpunkt in die Steuerung einbeziehen. Das würde ich sogar zuerst machen, weil das vom Aufwand geringer ist und vom Nutzen gute Ergebnisse verspricht. Voraussetzung bleibt natürlich, dass der Vergaser sauber eingestellt ist.
Gruß,
Ltof
_________________
„Schreibe nichts der Böswilligkeit zu, was durch Dummheit hinreichend erklärbar ist.“
(Hanlon’s Razor)
|
BID = 524431
ElektroNicki Inventar
Beiträge: 6429 Wohnort: Ugobangowangohousen
|
Hm. Du meinst, ich greif am besten (über nen hochohmigen Spannungsteiler, versteht sich) die Zündspannung ab (oder wickel ich vielleicht doch besser Draht um die Spule? Oder wäre ein Reedkontakt schnell genug??? Fragen über Fragen... ) und beziehe dann die Impulse ein? Hm, messen ginge ja noch, aber einbeziehen? Meinst du, dass der avr in dem Moment Pause (mit dem Messen+Regeln) machen soll? (die Zeit könnte man ja evtl nutzen, um Daten zu nem hd44780-Display zu schicken....)?
Das ganze Verfahren hätte natürlich den Vorteil, dass man aus dem Zündimpuls auch die Drehzahl ermitteln könnte...
_________________
|
BID = 524434
Ltof Inventar
Beiträge: 9331 Wohnort: Hommingberg
|
Neee - das meinte ich ganz bestimmt nicht!
Ich meinte eine drehzahlabhängige Zündzeitpunkt-Verschiebung. Bei niedrigen Drehzahlen läuft so ein Motor mit weniger Frühzundung runder.
Du glaubst wirklich, dass Du eine "ECU" (um herauszubekommen, was damit gemeint sein soll, musste ich selbst erst mal nachsehen - das ist Geschwaller) machen kannst, obwohl Du den Motor nicht verstanden hast? Wie kommt man auf so einen absurden Gedanken?
Ich bin nach wie vor der Meinung, dass die Optimierung in Deinem Sinne erst dann erfolgversprechend ist, wenn Du den Motor im Originalzustand perfekt zum Laufen bekommst und ihn durch und durch verstanden hast.
Bevor hier über die Sinnhaftigkeit diskutiert wird:
Ich sehe darin lediglich einen Lerneffekt.
Gruß,
Ltof
_________________
„Schreibe nichts der Böswilligkeit zu, was durch Dummheit hinreichend erklärbar ist.“
(Hanlon’s Razor)
|
BID = 524437
ElektroNicki Inventar
Beiträge: 6429 Wohnort: Ugobangowangohousen
|
Aua. Ne Zündzeitpunktverschiebung stell ich mir jetzt schwer vor, da müsste ich ja die Zündspule (an der ein Magnet vorbeisaust) verschiebbar machen.... oder ich investier die halben Ferien in den Bau einer Transistorzündung (außerdem bekomm ich dann so langsam n Problem mit der Spannungsversorgung... reicht da n an den Motor gemurkster Dynamo????) oder geb ne Menge Geld aus..
PS: Genau, um den Lerneffekt geht es mir!
pps: Das Schwingen könnte ich ja evtl. eindämmen, indem der Servo sich um so langsamer bewegt, je näher der Istwert am Sollwert ist.
_________________
[ Diese Nachricht wurde geändert von: ElektroNicki am 28 Mai 2008 15:29 ]
|
BID = 524453
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Wie gesagt, wenn es nur ums Programmieren geht, und nicht auch um viel Lernerfahrung in Sachen Entstörung, Filter und stabiler Versorgung dann würde ich mir ein anderes Projekt überlegen.
Und falls du denkst, ich hätte abgestimmt; dem ist nicht so. Es fehlt die Antwortmöglichkeit "Lerneffekt zu mühsam".
_________________
|
BID = 524464
ElektroNicki Inventar
Beiträge: 6429 Wohnort: Ugobangowangohousen
|
Das größte Problem sind _noch_ die Servos. Die fahren nie wirklich die Position an, die ich haben will, sondern schlackern wild in der Gegend rum. Wer ist am wahrscheinlichsten schuld- ich oder Bascom?
_________________
|
BID = 524469
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Könnte Vieles sein. Ich tippe auf eine "Verkettung unglücklicher Zustände ":
Bascom und du.
Wie gesagt, ein paar Zeilen Assembler sind aufschlussreicher als irgendein Assemblerprogramm, dass maschinenerzeugt wurde und von dem man nur mit viel Geduld und Kaffee die wirkliche Laufzeit bestimmen kann. Zudem denke ich mal, dass dir möglicherweise auch für BASIC Instruktionen fehlen und du dir evtl. Pufferüberläufe, Overflows irgendwelcher Zähler und/oder unkontrolliertes Dazwischenfunken diverser Interrupts eingefangen hast .
Es wäre jetzt eine gute Möglichkeit, AVR-ASM zu lernen.
Du wirst sehen, die Dinge sind viel einfacher, als und das gewisse Hochsprachen so mit komplex-aussehenden Instruktionen und verwirrender Syntax vorgaukeln .
Wenn du dann ASM für AVRs im Schalf kannst, kannst du dich C widmen. Davon profitiert nicht nur die AVR-Programmierung sondern damit lernst du auch eine der wichtigsten Sprachen für Systemprogrammierung. Wenn du dann noch Lust hast, kannst du mit C++ weitermachen .
_________________
|
BID = 524513
ElektroNicki Inventar
Beiträge: 6429 Wohnort: Ugobangowangohousen
|
Leider blicke ich bei Assemblerprogrammen nie so ganz durch ... z.B. ist hallo welt in Asm noch weit mehr Tipparbeit als eine Software-PWM in Bascom. c, naja, da hab ich wenigstens ein bisschen Erfahrung (Asuro sei Dank), aber von Assembler hab ich echt keine Ahnung.Ich stell mir das so vor, dass man sich bei dieser Byteschubserei dauernd merken muss, wo dieses oder jenes Byte liegt und was man damit dann noch tun muss.
Lauter kryptische Befehle.
_________________
|
BID = 524515
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Da ist nix kryptisches.
Du hast doch sicherlich mal mit Registern, logischen Verknüpfungen und eventuell kleineren logischen Rechenschaltungen rumgespielt.
Das alles vereint so eine kleine CPU locker.
Das ist echt leicht, wenn man die digitalen Grundschaltungen vor Augen hat.
_________________
|
BID = 524574
Jornbyte Moderator
Beiträge: 7178
|
Hatte ich nicht weiter oben
Zitat :
| Nu macht mal..... |
von mir gegeben....
@DonComi
Ich hatte ja geschrieben, dass ich aus Spass die gleichen Funktionen in C mit umgesezt habe. So wird auch das Projekt von ElektroNicki an vielen Stellen scheitern (z.B. Zündzeitpunktverschiebung). Bascom ist da nicht geeignet. C ist ne Alternative, wenn man sich den Code genau betrachtet und eingreift. Nur bei ASM hat der Progger alles im Griff. Zum Lernen ist das allerdings nicht das richtige Projekt, da sollte sich was anderes finden.
Nu macht mal.... weiter...
_________________
mfg Jornbyte
Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.
|
|
Zum Ersatzteileshop
Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum
Datenschutz
Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland
gerechnet auf die letzten 30 Tage haben wir 19 Beiträge im Durchschnitt pro Tag heute wurden bisher 8 Beiträge verfasst © x sparkkelsputz Besucher : 182388287 Heute : 3021 Gestern : 6874 Online : 537 24.11.2024 12:52 12 Besucher in den letzten 60 Sekunden alle 5.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
|
xcvb
ycvb
0.0397069454193
|