Forum: Mikrocontroller und Digitale Elektronik Zeitschleife in einem Vorhanden Pogramm ändern??


von HanZ (Gast)


Angehängte Dateien:

Lesenswert?

Hallo, Und zwar wollte ich fragen ob mir einer die Zeitschleife von 
diesem Programm ändern könnte. Sprich das Ready soll 3sec stehen bleiben 
anstatt ca. 1sec.



Vielen dank....


MFG HanZ

von Sven J. (svenj)


Lesenswert?

Moin...

Du zahlst wieviel, damit sich jemand durch diesen unkomentierten Haufen 
Code wühlt?

--
 SJ

von Tropi der Ungewollte (Gast)


Lesenswert?

@ HansZ: Haste mal n Euro?

von Peter D. (peda)


Lesenswert?

Das ist wohl ein Disassembler-Output.



Peter

von Tropi der Ungewollte (Gast)


Lesenswert?

Ne, da sind doch ein paar Kommentarfragmente drin. Ist wohl eher der 
Ausfluß eines genialen Geistes...

von HanZ (Gast)


Lesenswert?

Hallo, Richtig erkannt! Es handelt sich um  ein Disassembler-Output 
Programmcode! Eigendlich müste ja die Zeitschleife nach dem Reday 
kommen!?(habe ich auskomentiert) da ich mich mit der programierun von 
PIC`s nicht auskenne wäre ich euch sehr dankbar, wenn des jemand 
hinbekommen würde.

MfG HanZ

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Mühsam ernährt sich der Rückwärts-Ingenieur...
Ich hab sowas mit 6502-Programmen schon gemacht, jetzt muß der 
Texteditor mit der Suchen-und-Ersetzen-Funktion ran. Alle symbolischen 
Labels, sobald man eine vermutliche Funktion erkannt hat umbenennen, die 
Portpins nach Schaltplan soweit bekannt ebenfalls mit verständlichen 
Namen versehen, dann klärt sich das langsam. Wo ist die 
Interrupt-Routine versteckt, die kann gleich mal vom Rest getrennt 
werden.

von Daniel (Gast)


Lesenswert?

Bei Disassemblierung ist sowieso viel Nacharbeit notwendig.

Der Disassembler führt das Programm ja normalerweise nicht aus, und 
übersetzt
es, sondern geht strickt der Reihe nach. Sollten während des 
Programmcodes
Konstanten Tabellen oder ähnliches sein, werden die gleich mit übersetzt
als Befehle.
Oder macht das Dein Disassembler intelligenter?

Dirk

von HanZ (Gast)


Lesenswert?

Hallo, also mein Dissalbler Programm heißt "PicDisasm.exe" dei muss man 
grad ausfühern und den richtigen PIC auswählen.

Fangt da wo der Pfeil ist nicht die Zeitschleife an?

CALL LADR_0x00BB
    MOVLW 0x52      ; R
    MOVWF LRAM_0x22
    CALL LADR_0x010C
    MOVLW 0x65      ; e
    MOVWF LRAM_0x22
    CALL LADR_0x010C
    MOVLW 0x61      ; a
    MOVWF LRAM_0x22
    CALL LADR_0x010C
    MOVLW 0x64      ; d
    MOVWF LRAM_0x22
    CALL LADR_0x010C
    MOVLW 0x79      ; y
    MOVWF LRAM_0x22
    CALL LADR_0x010C
 -> BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BSF TMR0,5           ; !!Bank!! TMR0 - OPTION_REG
    BSF TMR0,3           ; !!Bank!! TMR0 - OPTION_REG
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    MOVLW 0x01
    MOVWF LRAM_0x42


MFG HanZ

von HanZ (Gast)


Lesenswert?

Hallo, kann mir den keiner sagen wo genau sich Zeitschleifen in diesem 
Programmcode verbergen? Und welchen Wert muss man verändern das sie 
verlängert wird?

Vielen dank

HanZ

von Peter D. (peda)


Lesenswert?

Ich weiß schon, warum ich keinen PIC benutze, der Code ist einfach zu 
kryptisch.

Beim 8051 wärs dagegen ganz easy, da müßte man nur nach DJNZ suchen, um 
Schleifen zu finden.


Schön ist auch zu sehen, daß massig Code für irgendwelche 
Bankumschaltungen draufgeht.


Peter

P.S.:
Auch wenn ich es könnte, es widerstrebt mir, fremde Programme zu 
cracken.

von HanZ (Gast)


Lesenswert?

Hallo, ich habe nicht verlangt mit meinem letzten post, dass es jemand 
das Programm cracken soll. Wenn mir jemand zeigen könnt wie ein Timer 
oder zeitscheleife für diesen pic aufgabut ist, könnte ich es selber 
umprogen.

MFG HanZ


von Stefan B. (stefan) Benutzerseite


Lesenswert?

Ach Gott was für ein Elend! Fast eine Woche geistert das hier rum. In 
der Zeit hat sich manch einer in PIC Assembler reingeschafft...

@ HanZ

...rede mit dem Programmierer und der baut dir die Anpassung ratzfatz 
ein. Wenn der Hund die Sourven gefressen hat oder du mit dem 
Programmierer dermaßen verkracht bist...

Bist du sicher, dass es überhaupt eine Pause von 1s gibt?

Der Code sieht mir als Laien so aus, als ob es keine Pause nach dem 
Ready gibt bzw. was du als Pause interpretierst ist bereits Messzeit. 
Daran gefummelt und deine Messung wird ungenau.

Etwas Schleifenähnliches ist in der Subroutine LADR_0x00AD. Der Code 
dort wird 255*249 mal durchgeführt. Aber ich kenne die Taktrate von 
deinem PIC nicht und bin jetzt auch zu strack die Takte in der Schleife 
auszuzählen.

Du könntest auch direkt probieren nach der Ready-Ausgabe diese Schleife 
2x (2x1s Fake + 1s Original-Messzeit = 3s) einzufügen und dann schauen, 
was der Ball macht.

;   ...
    MOVWF LRAM_0x22
    CALL LADR_0x010C
    MOVLW 0x79      ; y
    MOVWF LRAM_0x22
    CALL LADR_0x010C
1
; ############# NEU ############
2
    MOVLW 0xFF
3
    MOVWF LRAM_0x24
4
    CALL LADR_0x00AD
5
6
    MOVLW 0xFF
7
    MOVWF LRAM_0x24
8
    CALL LADR_0x00AD
9
; ############# NEU ############

    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BSF TMR0,5           ; !!Bank!! TMR0 - OPTION_REG
    BSF TMR0,3           ; !!Bank!! TMR0 - OPTION_REG
;   ...

Allerdings wird dein Code dadurch länger und es entscheidet sich dabei, 
wie gut dein Disassembler/Assembler ist ;-)

von HanZ (Gast)


Lesenswert?

Hi,

vielen dank mit der Zeitschleife funktioniert es wunderbar.


MFG Hanz

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.