PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PIC12F675 - ASM - Programmänderung, hilft mir Jemand?



Bruno Pisarek
02.05.2005, 19:10
Moin,

gibt es in diesem Forum Jemanden, der eine Programmänderung in Assembler für einen PIC 12F675 durchführen würde?
Ich bitte um Hilfe, da ich kein Assembler in diesen Größenordungen beherrsche und auch sonst wenig mit PICs zu tun habe.

Falls mein Wunsch viel Arbeit bereitet, soll die Leistung natürlich auch dementsprechend honoriert werden - keine Frage!

Um was geht es?
Es ist ein Motorregler für Bürsten-Gleichstrom-Motore aus dem Modellbau.
Das gesamte Projekt findet man hier -> http://www.designsoft.com.au/ahome/rc/PIC-ESC/ESC.html (http://www.designsoft.com.au/ahome/rc/PIC-ESC/ESC.html)

Die Software funktioniert einwandfrei und wurde von mir schon praktisch getestet.
Sehr gut finde ich die Modularität des Codes, man kann auf einfache Weise die gewünschten Features im Quelltext auswählen und dann compilieren.
Auch die Umsetzungstabellen für das Software-PWM sind nach belieben einlinkbar.

Der Code soll nach der Programmänderung auf jeden Fall diese Modularität behalten - das ist wichtig.

Jetzt zu folgendem Szenario:
Alles funktionier so -> wenn der Regler vom Akku mit Strom versorgt wird, muss ihm zuerst beigebracht werden, wo die Nullstellung ist und wo "Vollgas".
Nach dem Einschalten nimmt der Regler die aktuelle Position des Knüppels als Nullstellung an. Danach bewegt man den Knüppel auf Vollgas und wieder zurück zum Nullpunkt.
Jetzt hate er beide Punkte, quittiert dies durch zwei Pipser im Motor und ist bereit zur Arbeit.

Soweit so gut...

Wenn aber mitten beim Fahren (sagen wir mal - es wird die ganze Zeit Vollgas gegeben) der PIC einen Reset macht, dann startet der Regler neu und nimmt die Vollgasstellung als Nullpunkt.
Man kann ihn also nicht mehr programmieren und der Motor dreht nicht mehr.

Ziemlich doof bei Booten ;)

Ich wünschte mir folgende Änderung des Programms:
Wenn dieser o.g. Fall eintritt und das Programm neu startet, soll der "Lernprozess" nicht eher starten, bis die Impulslängen der Fernsteuerung deutlich unter 1,5ms gefallen sind.
Dadurch wird vermieden, dass bei Vollgas der Lernprozess beginnt.
Ich gehe von Impulslängen bei Graupner aus - also ca. 1ms für Null und 2ms bei Vollgas.

Vielleicht gibt es ja für dieses Programm und dieses Problem noch eine bessere Lösung?

Für Vorschläge und Hilfe bin ich sehr dankbar!
Falls mir jemand behilflich sein kann, kann ich es sofort ausprobieren und berichten.

LG,
Bruno

Holger
02.05.2005, 22:57
Da wirste für dein Vorhaben hier wenig Glück haben. Die meisten machen mit 51ern rum. Mit Pic beschäftigen sich hier eher weniger. Und einen fremden Quelltext zu ändern, ist für mache wie "Fliegenfressen" (war nur ein Zitat:D). Aber vielleicht haste Glück und es erbarmt sich einer;)
Ich leider nich, PIC is nich mein Ding!

Bruno Pisarek
02.05.2005, 23:13
Moin Holger,

ja - hast Recht - wäre ein Wunder, wenn es Jemanden interessiert.
Na mal sehen - vielleicht verläuft sich hier ´ne PIC-Seele und weiß was :)

LG,
Bruno

smartronik
03.05.2005, 13:10
Warum sollte der PIC beim fahren einen Reset machen?
Dann ist entweder was falsch programmiert, oder ein Hardware-Fehler oder der Akku leer

Bruno Pisarek
03.05.2005, 13:45
Warum sollte der PIC beim fahren einen Reset machen?
Dann ist entweder was falsch programmiert, oder ein Hardware-Fehler oder der Akku leer

Moin,

weil wir diesen Effekt mit Reglern einiger Hersteller schon öfter hatten.
Natürlich nur bei Reglern, die auf diese Weise programmiert werden oder selbst Ihre Punkte lernen.
Es kann es passieren, dass das Boot z.B. sein Element verlässt und dann beim Eintauchen so viel Strom fließt, dass die Spannung so weit zusammenbricht, das der MC einen Reset macht.
Gerade bei 7 Zellen und BEC reicht die "Reserve" nicht aus.

Ich wäre auch schon sehr zufrieden, wenn das Programm diese Programmierung nicht fordert und für den Nullpunkt 1ms und für Vollgas 2ms annimmt - also feste Werte.
Den Bereich könnte ich dann prima an der Funke selbst einstellen.

Viele Grüße,
Bruno

Peter Dannegger
03.05.2005, 13:55
Und einen fremden Quelltext zu ändern, ist für mache wie "Fliegenfressen"


Wie war !

Programmierer sind Individualisten, jeder hat seinen eigenen Programmierstil.

Fremde Sourcen faßt man nicht ohne größte Not an. Erstens braucht man lange Einarbeitungszeit, zweitens bezieht man doppelt Prügel (für die eigenen Fehler und die Fehler des Vorgängers).

Wenns ja wenigstens 8051 oder AVR wäre, würde ich sogar mal einen Blick riskieren.


Peter

wirkungsquantum
04.05.2005, 08:56
Hallo.

Na dann muss ich mich wohl mal als PIC-Bastler outen :cool: .... Ich sehe aber auch die Vorteile der Atmels - nur ist der Mensch an sich so träge und wenn man sich erst mal in die PICs reingedacht hat, kommt man mit "normalen" Sachen nicht mehr zurecht. ;)

@Bruno Pisarek
Ich werde mir das Projekt mal in Ruhe anschauen und überlegen, ob ich da was machen kann / will.

WQ

wirkungsquantum
04.05.2005, 09:08
Habe gerade die Beschreibung der Optionen im Quelltext überflogen und wenn ich es richtig gelesen habe, gibt es doch schon die Option, den Aus-Punkt fest auf 1,5ms einzustellen.


[.....]
; The throttle can either be auto calibrating, or operate over a fixed range.
; When the throttle operates over a fixed range it is assumed to be centred
; on 1.500 msec, however in the auto-calibrate mode the throttle will cover
; the range of values seen during programming.

Bruno Pisarek
04.05.2005, 23:49
Moin WQ,

oh Gott ist das peinlich...
Du hast natürlich Recht und ich habe es gerade ausprobiert - geht prima.
Ich brauch mal Urlaub ;)

LG,
Bruno