www.mikrocontroller.net

Forum: GCC Unöffentliche Hilfe bei meinem Programm

Autor: Tobias Tetzlaff (tobytetzi)
Datum: 05.07.2008 10:53

Hallo,

ich habe ein Programm in WinAVR für einen ATmega8 geschrieben.
Es läuft so weit ganz gut.
Nun habe ich noch ein paar Änderungen vorgenommen,
bekomme aber Timingprobleme.

Da es sich um ein Projekt handelt, welches mir kein Japaner oder Chinese
einfach so nachbauen soll,
möchte ich das gesammte Programm ungern veröffentlichen.

Ich suche nun Hilfe, von jemanden, der sich das Programm mal ansieht,
um mir bei gewissen Problemen zu helfen.

Grundsätzlich handelt es sich um ein Rotor Display für einen
Modellhubschrauber.

Evtl. lasse ich mich auf eine Entlohung ein, obwohl ich bis lang noch
nicht wirklich große Verkäufe des Systems verzeichnen kann.

Ich hoffe hiermit, jemanden zu finden, der mich ein wenig unterstützt.

Liebe Grüße Toby
Autor: Javier (Gast)
Datum: 05.07.2008 11:03

... Japaner oder Chinese ...

¡Buenos días!

Ningún problema. Es un forum español.

Adiós

Javier
Autor: Tobias Tetzlaff (tobytetzi)
Datum: 05.07.2008 12:11

Hallo,

denkst Du, das es hier keine "Neugierigen" Produktpiraten gibt?

Außerdem ist es nicht spanisch, ondern deutsch, oder? ;-)

Gruß Toby
Autor: yalu (Gast)
Datum: 05.07.2008 12:26

Ketzerische Frage: Wenn du so genial bist, dass dein Rotordisplay alle
bereits im Internet mit Source-Code veröffentlichten in den Schatten
stellt, warum bist du dann nicht in der Lage, die Probleme selbst zu
lösen?

'tschuldigung, kam mir nur gerade so in den Sinn, soll andere nicht
davon abhalten, dich zu unterstützen.
Autor: Jurij G. (jtr)
Datum: 05.07.2008 12:29

D.h. du erwartest Hilfe bei einem kommerziellen Projekt unter NDA ohne
Bezahlung. Ob sich da jemand findet?
Autor: Tobias Tetzlaff (tobytetzi)
Datum: 05.07.2008 12:49

Hallo,

nein, meine "Propeller" Clock stellt nicht andere in den Schatten.
Nur gibt es derzeit keine vergleichbaren Rotorblätter.
Ich möchte halt nicht, das jemand, ohne viel dafür zu tun,
meine Idee und Entwicklung einfach so nachbaut.

Ich sagte ja, das ich bereit bin, auch dafür zu bezahlen.
Nur wollte ich anmerken, das es noch nicht der "Verkausschlager" ist.
Das ich also nicht so viel investieren kann.
Kommt halt auf die Summe an.

Gruß Toby
Autor: Hannes Jaeger (pnuebergang)
Datum: 05.07.2008 13:10

Dann bleibt dir noch, jemanden einen Anteil am Verkauf als Gegenleistung
für seine Arbeit anzubieten. Vielleicht findet sich ein Glücksritter, so
wie damals in der New-Economy. Die meisten sind weiser geworden und
arbeiten lieber für Geld als für gute Worte und Versprechungen.
Autor: Gast (Gast)
Datum: 05.07.2008 14:22

Was für ein kindischer Humbug. Stimmts: Deine nächste Frage wäre, wie Du
ein Patent anmelden kannst. Ein weltweites natürlich.
Autor: I_ H. (i_h)
Datum: 05.07.2008 14:34

Japaner und Chinesen in einen Topf zu werfen ist schlimmer als Deutsche
und <EU Land östlich von uns> in einen Topf zu werfen.

Japan hat das selbe BIP/Einwohner wie Deutschland... nur mal so zur
Info. China hat 1/20stel davon.
Und Japan hat ~1.5mal so viele Einwohner, entsprechend auch ein ~1.5mal
so hohes BSP wie wir.
Autor: Peter Dannegger (peda)
Datum: 05.07.2008 16:12

Geniale Programmierer wachsen nicht auf Bäumen sondern sind sehr rar
gesät.

Man macht sich daher das Leben erheblich einfacher, wenn man erstmal
davon ausgeht, daß man nicht dazu gehört. D.h. man postet einfach seine
Programme und lernt aus den Reaktionen dazu.

Und wenn dann doch jemand diese Idee erfolgreich vermarken sollte
können, dann weiß man wenigstens, daß man auf dem richtigen Weg ist.
Und als wirkliches Genie hat man dann ja schon die nächste Idee in
petto.
Und man kann daraus lernen, wie der andere es zur Produktreife geführt
hat (was in EU-Land ja alles andere als einfach ist).

In jedem Fall hat man aber wesentlich mehr gewonnen als mit
übertriebener Geheimniskrämerei.


Peter


P.S.:
Ich wünsche mir manchmal sogar, daß Code abgekupfert wird, z.B. damit
ich endlich mal Geräte prellfrei bedienen kann.
Autor: Matthias Lipinsky (lippy)
Datum: 05.07.2008 16:26

>Ich wünsche mir manchmal sogar, daß Code abgekupfert wird, z.B. damit
>ich endlich mal Geräte prellfrei bedienen kann.

Dann solltest du deinen bulletproof-tastenentpreller vielleicht nicht
veröffentlichen, sondern Heimlichtuerei betreiben. Das schafft Neugier
;-))


@ Tobias Tetzlaff (tobytetzi)

Vielleicht kannst du ja zumindest paar Details bekanntgeben:
- Was soll das Programm genau machen,
- Was macht es wirklich,
- Wie groß ist das Programm etwa,
- Wo denkst du ist das Problem,
- Was erwartest du beim Darüberschauen..?
Autor: Tobias Tetzlaff (tobytetzi)
Datum: 05.07.2008 17:58
Dateianhang: FW_2.1.104.zip (19 KB, 29 Downloads)

Hallo,

@Gast, nein, dazu habe ich mich schon schlau gemacht.
Aber wenn auch nicht, was würde gegen die Frage sprechen?
Es gibt nunmal keine dummen Fragen, nur .... .

@I.H, ok, ich nehme hiermit meinen Kommentar zurück. ;-)
Auch wenn ich nur deutlich machen wollte, das kein anderer die Sache
einfach so nachbaut.

@Peter, ich habe mich entschlossen, das Programm hier einzustelen.
Allerdings gehe ich nicht davon aus, genial zu sein, ich habe nur eine
"meiner Meinung nach" geniale Idee gehabt, eine PropClock in einem Heli
zu verwenden. ;-)

Ich habe nun auch wirklich keine Lust, mich über östliche EU Mitglieder,
oder Japaner, Chinesen oder sonstige zu unterhalten.
Ich würde nun viellieber ein gut funktionierendes Programm erstellen,
indem ich hier etwas Hilfe bekomme.

Das ich kein "genialer" Programmierer bin, werdet ihr sehen, wenn ihr
das Programm anseht, aber dazu soll es ja optimiert werden.

@Matthias, das Programm soll
pro Umdrehung eine IR Pulslänge auswerten
die Pulslänge bestimmt, was angezeigt werden soll
der IR Puls ist Startsignal der Anzeige
es soll einen 9 bit Wert "Offset" geben, der bestimmt, bei welcher
Spalte das Bild anfängt
es soll bei einem bestimmten IR Puls die aktuelle Drehzahl im aktuellen
Bild angezeigt werden.
...
...

Woran es liegt, das ich Timing Probleme habe?
Seit ich abfrage, ob der "Propeller" zwischen 2 bestimmten Spalten ist,
und in den Spalten aus einer 8x5 bit Schrift eine 16x5 Bit Schrift
mache,
geht die Drehzahlanzeige nur noch bis etwa 1300 U/min. Danach steht nur
Wirrwarr da.
Ich glaube stark daran, das zu wenig Zeit im Spalten Interrut zur
verfügung steht, um auf die Spalte zu testen, und gleichzeitig die
Schrift zu erhöhen.
Kurz gesagt, das INT Programm ist zu lang, denke ich.

Gruß Toby
Autor: Tobias Tetzlaff (tobytetzi)
Datum: 05.07.2008 18:10

Mir ist grade noch was eingefallen:

Ich bin nicht davon ausgegangen, das es viele AVR Programmierer gibt,
die auch noch mit WinAVR programmieren, und auch noch RC Heli fliegen,
und zu guter letzt auch noch eine Propeller Uhr auf einen Heli basteln
wollen.

Daher denke, dachte, ich, das die Resonanz nicht so groß sein könnte,
wenn ich einfach mal so meinen Code poste, und auf Hilfe hoffe.
Daher hatte ich schon eher speziell jemanden gesucht.

Allerdings weiß ich auch, das eine Mehrheit gemeinsam mehr schaffen
kann,
als ein einzelner.

Soviel dazu.

Gruß Toby
Autor: Jurij G. (jtr)
Datum: 05.07.2008 18:17

Tobias Tetzlaff wrote:
> ich habe nur eine
> "meiner Meinung nach" geniale Idee gehabt, eine PropClock in einem Heli
> zu verwenden. ;-)

Ist auch eine gute Idee, nur nicht neu ;)
Beitrag "rotordisplay guckt euch dass ma an"
Autor: Tobias Tetzlaff (tobytetzi)
Datum: 05.07.2008 18:23

Hallo Jurij,

ja, da geht es ja auch genau um mein System. ;-)

Es gibt derzeit noch kein vergleichbares.
Zumindest keines, welches so viele LEDs hat.

Es gibt wohl Prototypen, aber keinen, der es jeh Hardware Technisch zur
Serie geführt hat. Haber bis lang alle nur in Holzblättern was
eingebaut, aber nicht in GFK.
Schau mal unter www.NightGraphiX.de, dann auf Impressum, das sollte
erklären, das es meines ist.

Prinzipiell funktioniert das System ja.
Nur habe ich noch ein paar Ideen, bei denen ich mit der Software
Probleme habe.

Gruß Toby
Autor: Simon K. (simon) Benutzerseite
Datum: 05.07.2008 18:31

Tobias Tetzlaff wrote:
> @Peter, ich habe mich entschlossen, das Programm hier einzustelen.

Ohje ohje, der ganze Code in main.c... hm! Das wird wohl erst mal dauern
bis man da durchblickt.
Autor: Peter Dannegger (peda)
Datum: 05.07.2008 18:37

Ja, da ist wirklich ne Menge Holz in vielen Interrupts.

Du solltest mal versuchen, soviel wie möglich in die Mainloop zu
verlagern.
Z.B. Drehzahl und Spannung berechnen reicht völlig aus, wenn man das
alle 0,5s einmal macht und nicht im Interrupt.

Und die ganzen Unterfunktionen solltest Du vor den Interrupts schreiben
und als inline definieren, damit nicht unnötig Register gerettet werden.


Peter
Autor: I_ H. (i_h)
Datum: 05.07.2008 18:51

Musst halt aufpassen, Japaner und Chinesen sind sich nicht grün. Dagegen
ist die Fußballfeindschaft D<->Holland nix.
Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum: 05.07.2008 21:54

Tobias Tetzlaff wrote:

> Nur habe ich noch ein paar Ideen, bei denen ich mit der Software
> Probleme habe.

Wenn du jetzt noch erzählst, welche eigentlich, dann steht ja der
Hilfe nicht mehr viel im Weg. ;-)
Autor: Tobias Tetzlaff (tobytetzi)
Datum: 05.07.2008 22:10

Hallo Jörg,

seitdem ich die 5x8 Schrift zu 5x15 wandele,
und die Drehzahl in einem bestimmen Fenster der Spalten anzeigen will,
geht die Drehzahlanzeige nur noch bis etwa 1300 U/min.
Außerdem flackert dann das Bild extrem hin und her.
Über 1300 U/min wird nur Wirrwarr angezeigt.

Ebenso nutze ich nicht mehr die Var Spalte als Spaltenwert,
sondern Spalte_Offset, das ist die Spalte mit Offsetwert, damit
das Bild in 512 Schritten gedreht werden kann.
Das brauche ich, da es Mechanisch nicht immer möglich ist,
den Sensor, bzw. den Magneten des IR Senders, an die 0 Position zu
montieren.

Ich habe grade Peters Rat befolgt, und werde gleich einen Testflug
machen.
Mal sehen, ob es schon etwas gebracht hat.

Ebenso versuche ich grade die neue Version etwas zu dokumentieren,
damit die einzelnen Funktionen, speziell die Interupts verständlicher
werden. ;-)

Melde mich gleich nochmal.

Gruß Toby
Autor: Tobias Tetzlaff (tobytetzi)
Datum: 05.07.2008 23:18
Dateianhang: Bilder.zip (303,8 KB, 32 Downloads)

Hallo,

also nach meinem Testflug kann ich sagen,
das das Bild wieder stabil ist.
Leider geht die Drehzahl Anzeige noch nicht richtig.
Bis 1300 geht es, danach komische Ziffern,
manchmal nur senkrechte Striche.
Dafür wackelt das Bild nicht mehr, es sthet wie eine Eins.

Werde nochmal die andere "Verbreitern" Funktion ausprobieren.
Denke, das es daran liegt.

Wäre es eigentlich schneller, eine 5x16 Font aus dem Flash zu lesen,
statt
eine 5x8 zu lesen, und die zu einer 5x16 umzubauen?
Dann bekomme ich nur Probleme mit dem Flash, da ist nicht genügend Platz
mehr.
Es sei denn, ich nehme nur die benötigten Zeichen.
0-9, L, i, P, O.
Aber dann geht die Funktion
Pixels = pgm_read_byte_near(&FontTable[ASCII-32][ASCII_Row]);
nicht mehr, da ja die Adessen nicht mehr stimmen.

Anliegend ein paar Bilder bei denen man auch noch einen weiteren fehler
erkennt.
Bei der Drehzahlanzeige wird nicht nur unten im Bild, sondern auch oben
ein Zeichen angezeigt. (Bild 0001, 0010, 0012)
Bild 0005 zeigt die "komischen" Striche, die ich meine.
Obwohl Bild 0006 und 0007 einen Wert größer 1300 zeigt, selber gesehen
hab ich die Zahl aber nicht.

Gruß Toby

Das neue Programm kommt sofort.
Autor: Tobias Tetzlaff (tobytetzi)
Datum: 05.07.2008 23:22
Dateianhang: main.c (45,2 KB, 67 Downloads) | formatierter Code

Nochmal ich,

Da ist das Programm 2.1.105.
alles inline deklariert und vor den Int Funktionen.

Drehzahl Wert und Spannungsüberwachung alle 10 Umdrehungen.
Das ist etwa alle 0,5 Sekunden.

Die Interrupts etwas mehr Dokumentiert.

Gruß Toby

Antwort schreiben

Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
  • Aussagekräftigen Betreff wählen
  • Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
  • JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
  • Schaltpläne, Screenshots usw. als PNG oder GIF anhängen

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel






webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net