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
Moin... Du zahlst wieviel, damit sich jemand durch diesen unkomentierten Haufen Code wühlt? -- SJ
Ne, da sind doch ein paar Kommentarfragmente drin. Ist wohl eher der Ausfluß eines genialen Geistes...
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
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.
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
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
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
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.
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
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 ;-)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.