PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frequenzverdoppler



Sandro279
18.04.2013, 20:19
Hallo,
Ich bin gerade dabei einen digitalen Drehzahlmesser zu bauen, allerdings bekomm ich dabei nur die Hälfte der tatsächlichen Umdrehungen angezeigt.
Das ganze wollte ich nun mit einem XOR-Gatter und einem Kondensator bauen, nur hab ich keine Ahnung welchen Kondensator ich dafür brauche.
Ich will das ganze an einer Hercules Prima GT mit kontaktloser Zündanlage anschließen und das XOR-Gatter, das ich habe geht von 3-15V.

PICture
19.04.2013, 12:39
Hallo!

Ich habe das Prinzip im Code skizziert. Die feste, per R und C festgelegte Impulsbreite am Ausgang des XOR's (Uo) muss gewünscht an max. zu verdoppelter Frequenz (Ui) angepasst werden.

XOR
I1 __
Ui >---+------------\\ \
| ___ I2 || |---> Uo
+-|___|-+----//__/
R |
---
--- C
|
===
GND

_____ _____ _____
Ui = I1 _| |_____| |_____| |_____

_____ _____ _____
I2 __/ \_____/ \_____/ \____

_ _ _ _ _ _
Uo _| |___| |___| |___| |___| |___| |___

(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)

joar50
19.04.2013, 13:22
Hallo,
bei einem weiten Frequenzbereich (Drehzahlmesser) wird dein Signal am Ausgang aber unsymmetrisch. Ein symmetrisches Signal doppelter Frequenz hast du nur in einem engen Eingangsfrequenzbereich (abhängig von R, C)

Ja ne, is klar
19.04.2013, 21:52
Hi
Ich weiss zwar nicht wie die Zündanlage aussieht, aber ich könnte mir vorstellen, dass nur eine exakte Flanke gebraucht wird.
Um welche Frequenzen handelt es sich? 10-100Hz? Welche Genauigkeit?

Sandro279
21.04.2013, 20:11
Also der Drehzahlmesser hat einen PIC16F628. Die Software dazu hab ich schon, könnte man die abändern, dass er doppelt so viel anzeigt?
Ich weiß sicher, dass er in einem Schritt 15000000 durch die gemessene Drehzahl dividiert, also müsste ich doch 15000000 durch 30000000 ersetzen, oder?
Noch eine Frage, kann man den Chip öfter als ein mal beschreiben, oder geht das dann nicht mehr?
Zum beschreiben des Chips hab ich einen Batronix Bagero II für Motorsteuergeräte, mit dem sollte das doch funktionieren, oder? Jetzt weiß ich nur nicht, mit welchem Programm ich am besten die Software ändern kann, wisst ihr da eins?

Besserwessi
21.04.2013, 20:58
Das ändern des Programms geht relativ einfach wenn man den Sourcecode (C oder ASM) hat. Nur mit dem Binärfile ist es sehr schwer und ggf. fast unmöglich. Falls der µC einen Quarz nutzt, ließe sich ggf. ein Quarz mit halber Frequenz nutzen, falls dann die Anzeige nicht beginnt zu flimmern. Das Programm könnte dann gleich bleiben, nur die Anzeige wird auch etwas träger.

Den Chip sollte man mehrmals Programmieren können.

Rico88
21.04.2013, 21:53
Also den PIC kannst du auf jeden Fall mehrmals beschreiben können. Wie du sagst hast du ja auch das Programm des PIC, also würde ich auf jeden Fall die Software-Lösung bevorzugen. Mehr Hardware heißt ja auch immer gleich mehr Fehlerquellen. Ob du mit deinem Brenner zurechtkommst ist ganz von der Version abhängig. Nur der BX48 Batego II (http://www.batronix.com/versand/programmiergeraete/BX48/batego-II.html) kann auch PIC's beschreiben.
Zum editieren der Software würde ich die Entwicklungsumgebung MPLAB von Microchip nutzen. Gibt ja keine bessere Quelle als der Hersteller ;) Die Software ist auch in einer fast vollwertigen Studentenversion kostenlos als Download verfügbar.
Da der PIC schon für unter 3€ erhältlich ist würde ich noch einen neuen Controller kaufen um im Notfall immernoch die Möglichkeit haben zu können durch eine externe Vorbeschaltung das Problem zu lösen.

Gruß Rico

Sandro279
21.04.2013, 21:59
Okay
Vielen Dank für alle Antworten!
Ich werd mal versuchen ob ichs hinbekomm

Sandro279
22.04.2013, 21:25
also das ist doch ein bagero bx40 geht das damit also nicht?

Rico88
23.04.2013, 17:47
Nur mit dem bx40 kannst du leider keinen PIC beschreiben. Also scheidet leider diee Softwarelösung auszuscheiden. Für diesen PIC besteht leider auch keine Möglichkeit, das ein RS232-Bootloader vorhanden ist.
Also bleibt für eine Software-Lösung nur die Möglichkeit sich den PIC von jemand anderen ändern zu lassen / bzw. sich einen neuen beschreiben zu lassen. Mit der Source könnte ich einen neuen beschreiben, habe eh noch eine Reichelt-Bestellung für mich offen, da könnte ich auch davon einen mitbestellen.

Gruß Rico

Sandro279
23.04.2013, 18:15
Okay, ich hab gerade bei meiner Suche zu Hause ein altes Gerät gefunden, mit dem kann ich die PICs beschreiben
Nur weiß ich leider nicht, was ich genau an der Software ändern muss. Ich hab vier Dateien, eine .hex, eine .asm, eine .a16 und eine .inc
in der .asm hab ich folgendes gefunden:

Ber1
; 15 000 000 durch Meßwert teilen
; 15 000 000 = E4 E1 C0
; 15 000 000 nach f laden
movlw 0xE4
movwf f2
movlw 0xE1
movwf f1
movlw 0xC0
movwf f0

; nun durch den Meßwert dividieren
call Div24 ; f:= f / xw

wenn ich nach Div 24 suche, finde ich folgendes:

Div24
MOVFW f0
MOVWF AARGB3
MOVFW f1
MOVWF AARGB2
MOVFW f2
MOVWF AARGB1
MOVLW 0x00
MOVWF AARGB0
MOVFW xw0
MOVWF BARGB2
MOVFW xw1
MOVWF BARGB1
MOVFW xw2
MOVWF BARGB0

CALL FXD3224S

MOVFW AARGB3
MOVWF f0
MOVFW AARGB2
MOVWF f1
MOVFW AARGB1
MOVWF f2
return

Muss ich dort irgendwas ändern oder in einer anderen Datei?
Sry, wenn ich mich nicht sonderlich gut auskenne.

Rico88
23.04.2013, 18:57
Ware hilfreich, wenn du uns mal die .asm Datei hochladen würdest, da lässt sich dann auch der ganze Ablauf nachvollziehen und eine Änderung vorschlagen.

Sandro279
23.04.2013, 19:04
list p=16f628
;************************************************* *************
;* PORTA: 0 Ziffer 3 -----------------------------------------------------+
;* 1 Ziffer 2 -------------------------------------+ I
;* 2 Ziffer 1 ---------------------+ I I
;* 3 Ziffer 0 -----+ I I I
;* 4 Segment G I I I I
;* PORTB: 0 Segment B AAAAA AAAAA AAAAA AAAAA
;* 1 Segment F F B F B F B F B
;* 2 Segment A F B F B F B F B
;* 3 Pulseingang GGGGG GGGGG GGGGG GGGGG
;* 4 Segment H E C E C E C E C
;* 5 Segment C E C E C E C E C
;* 6 Segment E DDDDD HH DDDDD HH DDDDD HH DDDDD HH
;* 7 Segment D
;
; 7-Segment-Tabelle fuer VQE
;Segmente
; addwf PCL, f
;; 76543210
;; DECHgAFB
; retlw B'00011000' ; 0
; retlw B'11011110' ; 1
; retlw B'00110010' ; 2
; retlw B'01010010' ; 3
; retlw B'11010100' ; 4
; retlw B'01010001' ; 5
; retlw B'00010001' ; 6
; retlw B'11011010' ; 7
; retlw B'00010000' ; 8
; retlw B'01010000' ; 9
; retlw B'11111111' ; dunkel
; retlw B'10110111' ; -
;
; zukuenftig sollte man Segment H weglassen und mit RB4 Segment G treiben
;
;************************************************* *************
;
;sprut (zero) Bredendiek 01/2004 .. 10/2008
;
; Drehzahlmesser fuer PC Luefter mit 16F628
;
; Prozessor 16F628 o.ä.
; Prozessor-Takt 4 MHz
; Meßimpulseingang RB3
;
; Frequenzzähler mit 4-stellige LED-Anzeige
; Messen der Luefterdrehzahl anhand des Tachosignals
; es kommen 2 Pulse pro Umdrehung kommen
;
;
;************************************************* *************
; einige Festlegungen fuer die Division aus der Microchip-Bibliothek AN617

TRUE EQU 1
FALSE EQU 0

P16C5X SET FALSE ; If P16C5X, use INHX8M file format.
P16CXX SET FALSE ; If P16CXX, use INHX8M file format.
P17CXX SET FALSE ; If P17CXX, the INHX32 file format is required
; in the LIST directive
RESET_V SET 0x0000 ; Default Reset Vector address of 0h
; (16Cxx and 17Cxx devices)
P16_MAP1 SET FALSE ; FOR 16C60/61/70/71/84 Memory Map
P16_MAP2 SET FALSE ; For all other 16Cxx Memory Maps

P16CXX SET TRUE ; If P16CXX, use INHX8M file format.
P16_MAP2 SET TRUE


; Includedatei für den 16F628 einbinden

#include <P16f628.INC>
#INCLUDE <MATH16.INC> ; PIC16 math library definitions, belegt 0x20 bis 0x4B

ERRORLEVEL -302 ;SUPPRESS BANK SELECTION MESSAGES

; Configuration festlegen:
; Power on Timer, kein Watchdog, HS-Oscillator, kein Brown out, kein LV-programming
__CONFIG _PWRTE_ON & _WDT_OFF & _XT_OSC & _BODEN_OFF & _LVP_OFF


;************************************************* *************
; Variablen festlegen
; 0x20 bis 0x4B ist durch Divisionsroutine belegt

w_copy equ 0x4D ; nur für INT
s_copy equ 0x4E ; nur für INT
p_copy equ 0x4F ; nur für INT

Flags equ 0x50
Fehler equ 0x51 ; Fehlerregister für Mathematik

; Dezimalstellen
Digit equ 0x52 ; aktuell angezeigte Stelle
Ziffer0 equ 0x53 ; Tausender
Ziffer1 equ 0x54 ; Hunderter
Ziffer2 equ 0x55 ; Zehner
Ziffer3 equ 0x56 ; Einer
HdT equ 0x57 ;4 Tausender
HdH equ 0x58 ;3 Hunderter
HdZ equ 0x59 ;2 Zehner
HdE equ 0x5A ;1 Einer
HdX equ 0x5B ; Puffer für eine Dezimalstelle

;24 Bit Rechenregister
f0 equ 0x5C ;
f1 equ 0x5D ;
f2 equ 0x5E ;
;24 Bit Rechenregister
xw0 equ 0x5F ;
xw1 equ 0x60 ;
xw2 equ 0x61 ;
;24 Bit Rechenregister
g0 equ 0x62 ;
g1 equ 0x63 ;
g2 equ 0x64
; Meßwert wird hier gespeichert
PeriodeL equ 0x65
PeriodeH equ 0x66

; Konstanten festlegen
#define Datenda Flags,6 ; neuer Meßwert wurde gemessen
#define Kommaan Flags,5 ; Dezimalpunkt ein, da neue Messung fertig

Ini_opt equ B'10000100' ; Timer0 int 32:1, pull-up on

;************************************************* *************
org 0
goto Init


;************************************************* *************
; die Interuptserviceroutine
; wird vom capture-Modul ausgeloest

org 4
intvec
movwf w_copy ; w retten
swapf STATUS, w ; STATUS retten
clrf STATUS
movwf s_copy ;
movf PCLATH, W
movwf p_copy
clrf PCLATH ; Bank 0

; Intrupt servic routine
clrf TMR1L ; Timer 1 zurücksetzen
clrf TMR1H
bcf PIR1,CCP1IF ; Interupt-Flag löschen

btfss PIR1,TMR1IF ; Timer1 übergelaufen?
goto Int_copy ; nein, weitermachen
; ja: Drehzahl zu niedrig, dann Anzeige ' --'
movlw D'10'
movwf Ziffer0 ; tausender Stelle dunkel
movwf Ziffer1 ; hunderter Stelle dunkel
movlw D'11'
movwf Ziffer2
movwf Ziffer3 ; Anzeige ' --'

goto Int_end

Int_copy
; Meßwert retten
movfw CCPR1L
movwf PeriodeL
movfw CCPR1H
movwf PeriodeH
bsf Datenda ; neuen Meßwert melden
bsf Kommaan ; Dezimalpunkt einschalten

Int_end
bcf PIR1,TMR1IF ; Timer1 Überlaufflag löschen
bcf PIR1,CCP1IF ; Interupt-Flag löschen
movf p_copy, W
movwf PCLATH
swapf s_copy, w ; STATUS zurück
movwf STATUS
swapf w_copy, f ; w zurück mit flags
swapf w_copy, w

retfie

;************************************************* *************
; 7-Segment-Tabelle

;* PORTB: 0 Segment A AAAAA
;* 1 Segment F F B
;* 2 Segment E F B
;* 3 Segment D GGGGG
;* 4 Segment H E C
;* 5 Segment C E C
;* 6 Segment G DDDDD HH
;* 7 Segment B
;

; 7-Segment-Tabelle fuer VQE
Segmente
addwf PCL, f
; 76543210
; DECHgAFB
retlw B'00011000' ; 0
retlw B'11011110' ; 1
retlw B'00110010' ; 2
retlw B'01010010' ; 3
retlw B'11010100' ; 4
retlw B'01010001' ; 5
retlw B'00010001' ; 6
retlw B'11011010' ; 7
retlw B'00010000' ; 8
retlw B'01010000' ; 9
retlw B'11111111' ; dunkel
retlw B'11110111' ; -


;************************************************* *************
; Routine zum multiplexen Anzeigen am LED-Display
Display
bsf PORTA, 3 ; Ziffer0 aus
bsf PORTA, 2 ; Ziffer1 aus
bsf PORTA, 1 ; Ziffer2 aus
bsf PORTA, 0 ; Ziffer3 aus
bsf PORTA, 4 ; Segmente aus
movlw B'11110111'
iorwf PORTB,f

decf Digit,f ; Ziffernzähler verringern

;anstehende Arbeit:
;Digit=4: falls neuer Meßwert da ist: Rechnen
;Digit=3: anzeigen Ziffer 3 1er
;Digit=2: anzeigen Ziffer 2 10er
;Digit=1: anzeigen Ziffer 1 100er
;Digit=0: anzeigen Ziffer 0 1000er

btfsc STATUS, Z
goto Disp_0 ; Z-Flag=1 ergo Digit=0
decf Digit, w
btfsc STATUS, Z
goto Disp_1 ; Digit=1
btfsc Digit,2
goto Disp_4 ; Digit=4
btfss Digit,0
goto Disp_2 ; Digit=2
goto Disp_3 ; Digit=3

Disp_0
movlw 5
movwf Digit ; Digit wieder auf 5 einstellen
movfw Ziffer0 ; Wert der 1. Ziffer (1000er)
btfss STATUS,Z ; führende '0' wird nicht angezeigt!
bcf PORTA, 3 ; 1. Ziffer einschalten
goto Disp_end

Disp_1
movfw Ziffer1 ; Wert der 2. Ziffer (100er)
bcf PORTA, 2 ; 2. Ziffer einschalten
goto Disp_end

Disp_2
movfw Ziffer2 ; Wert der 3. Ziffer (10er)
bcf PORTA, 1 ; 3. Ziffer einschalten
goto Disp_end

Disp_3
movfw Ziffer3 ; Wert der 3. Ziffer (1er)
bcf PORTA, 0 ; 4. Ziffer einschalten
goto Disp_end

Disp_4
btfsc Datenda ; ist neuer Meßwert da?
call Berechnung ; ja: Drehzahl berechnen
goto Disp_end2 ; keine Segmente einschalten

Disp_end
call Segmente ; 7-Segment-Code für aktuelle Ziffer holen
movwf PORTB ; Segmente einschalten
bsf PORTA,4 ; Segment G nicht vergessen
andlw B'00001000'
btfsc STATUS,Z
bcf PORTA,4

; Dezimalpunkt nur nach Messung ein
btfss Kommaan
goto Disp_end2
;Komma anschalten nach 2. Stelle
decf Digit, w
movfw Digit
btfsc STATUS, Z ; 2. Stelle aktiv?
bcf PORTB,4 ; ja: Dezimalpunkt an
bcf Kommaan ; Dez.p. aus bis zur nächsten Messung
Disp_end2
return


;************************************************* *************
; Das Programm beginnt mit der Initialisierung

Init movlw B'11111111'
movwf PORTB ; LEDs aus
bsf PORTA, 4
bsf STATUS, RP0 ; Bank 1
movlw Ini_opt ; pull-up on; Timer0 32:1 interner Takt
movwf OPTION_REG
movlw B'00001000' ; PortB alle outputs außer RB3
movwf TRISB
movlw B'11100000' ; PortRA0..4 outputs
movwf TRISA
bcf STATUS, RP0 ; Bank 0
movlw B'11111111'
movwf PORTB ; LEDs aus
bsf PORTA, 4

; 16F628 alle Comparatoreingänge auf Digital umschalten
BSF CMCON, CM0
BSF CMCON, CM1
BSF CMCON, CM2

clrf INTCON ; Interupt disable

; Anzeige initialisieren
movlw 4
movwf Digit
movlw D'11'
movwf Ziffer0
movwf Ziffer1
movwf Ziffer2
movwf Ziffer3 ; Anzeige '----'

; Timer0 initialisieren für LED-Multiplex-Anzeige
; 16:1 Vorteiler.
; Immer nach 256 x 16 Zyklen (~4.1 ms) läuft der Timer0 über -> 244 Hz
; da ein Anzeigezyklus aud 5 Schritten besteht, -> 49 Hz Anzeigefrequenz = flackerfrei
bsf STATUS, RP0 ; auf Bank 1 umschalten
movlw B'10000011' ; internen Takt zählen, Vorteiler zum Timer0, 16:1
movwf OPTION_REG
bcf STATUS, RP0 ; auf Bank 0 zurückschalten
clrf TMR0
bcf INTCON, T0IE ; Timer0 interupt verbieten
bsf INTCON, GIE ; Interupt erlauben
bcf INTCON, T0IF ; Flag löschen

; Timer1 auf 8µs-Takt einstellen für Messung
; interner Takt, Vorteiler 8:1
; 4MHz / 4 / 8 = 125 kHz
movlw B'00110001' ; internen Takt zählen, Vorteiler 8:1
movwf T1CON
; Capture Mode
movlw B'00000110' ; Capture mode, jede 4. steigende Flanke
movwf CCP1CON

; als Lebenszeichen auf der hintersten Stelle ein Punkt
bcf PORTB, 4 ; Dezimalpunkt
bcf PORTA, 0 ; 4. Ziffer einschalten

; Messung erst starten, wenn 2x Capturen erfolgte
; damit der 1. Meßwert schon richtig ist
clrf TMR1L
clrf TMR1H
bcf PIR1,CCP1IF
sync1
btfss PIR1,CCP1IF
goto sync1
clrf TMR1L
clrf TMR1H
bcf PIR1,CCP1IF
bcf PIR1,TMR1IF

; int erlauben
bsf STATUS, RP0 ; auf Bank 1 umschalten
clrf PIE1
bsf PIE1,CCP1IE
bcf STATUS, RP0 ; auf Bank 0
bcf Datenda
clrf INTCON
bsf INTCON,PEIE
bsf INTCON,GIE

; Anzeigeschleife
disploop
btfss INTCON, T0IF
goto disploop
bcf INTCON, T0IF
call Display
goto disploop


;************************************************* *************
; Neuberechnung des Anzeigewerts
Berechnung
; Meßwert in xw laden
bcf INTCON,GIE
movfw PeriodeL
movwf xw0
movfw PeriodeH
movwf xw1
clrf xw2
bsf INTCON,GIE

; falls Drehzahl zu hoch, dann Anzeige '----'
movlw D'11'
movwf Ziffer0
movwf Ziffer1
movwf Ziffer2
movwf Ziffer3 ; Anzeige '----'
; bei Meßwerten<3x512 abbrechen (Fehlmessung oder >9765 rpm)
; 06-00 = 0000.0110-0000.0000
movlw 0x06
subwf xw1, w
btfss STATUS,C
goto BerLoop ; Messergebnis zu klein, Drehzahl zu hoch

movfw xw2


; Drehzahl ist nicht zu hoch, Berechnung kann beginnen
Ber1
; 15 000 000 durch Meßwert teilen
; 15 000 000 = E4 E1 C0
; 15 000 000 nach f laden
movlw 0xE4
movwf f2
movlw 0xE1
movwf f1
movlw 0xC0
movwf f0

; nun durch den Meßwert dividieren
call Div24 ; f:= f / xw

debug
; Divisionsergebnis in BCD wandeln & anzeigen (4-stellig)
call OutDez16

; wieder in den Timer0-Rythmus synchronisieren,
; da ansonsten letze Displaystelle dunkler erscheint
bcf INTCON, T0IF
BerLoop
btfss INTCON, T0IF
goto BerLoop
bcf INTCON, T0IF
bcf Datenda ; Berechnung des Meßwertes erledigt
return

;************************************************* *************
;+++Mathematik-Routinen ***************************************

;************************************************* *************
; 24 Bit Subtraktion, bei Überlauf (neg. Ergebnis) ist C gesetzt
Sub24 ; 24 bit f:=f-xw calc=xw cnt=f
clrf Fehler ; extraflags löschen

movf xw0, w ; f0=f0-xw0
subwf f0, f

btfsc STATUS,C
goto sb0
movlw 0x01 ; borgen von f1
subwf f1, f

btfsc STATUS,C
goto sb0
subwf f2 ,f ; borgen von f2

btfss STATUS,C
bsf Fehler, C ; unterlauf

sb0 movf xw1, w ; f1=f1-xw1
subwf f1, f

btfsc STATUS,C
goto sb1
movlw 0x01 ; borgen von f2
subwf f2 ,f

btfss STATUS,C
bsf Fehler, C ; Unterlauf

sb1 movf xw2,w ; f2=f2-xw2
subwf f2, f

btfss STATUS,C
bsf Fehler, C ; Unterlauf

bcf STATUS, C
btfsc Fehler, C
bsf STATUS, C
return

;************************************************* *************
;24 bit Adition, C-Flag bei Überlauf gesetzt
Add24 ; 24-bit add: f = f + xw
movf xw0,w ; low byte
addwf f0,f ; low byte add

movf xw1,w ; next byte
btfsc STATUS,C ; skip to simple add if C was reset
incfsz xw1,w ; add C if it was set
addwf f1,f ; high byte add if NZ

movf xw2,w ; high byte
btfsc STATUS,C ; überspringe falls C nicht gesetzt
incfsz xw2,w ; addiere C falls gesetzt
addwf f2,f ; next byte add wenn NZ

return ; fertig


;************************************************* *************
; 24 bit Division f:= f / xw
; aus der Microchip-Bibliothek AN617
; AARG := AARG / BARG
; Microchip numeriert die Bytes anders herum als ich: aufpassen!
; A0-A1-A2-A3 B0-B1-B2
; f3-f2-f1-f0 x2-x2-x0
Div24
MOVFW f0
MOVWF AARGB3
MOVFW f1
MOVWF AARGB2
MOVFW f2
MOVWF AARGB1
MOVLW 0x00
MOVWF AARGB0
MOVFW xw0
MOVWF BARGB2
MOVFW xw1
MOVWF BARGB1
MOVFW xw2
MOVWF BARGB0

CALL FXD3224S

MOVFW AARGB3
MOVWF f0
MOVFW AARGB2
MOVWF f1
MOVFW AARGB1
MOVWF f2
return



;************************************************* *************
; positiven 16 Bit Wert (f1,f0) in 4 dezimale Ziffern wandeln
OutDez16
call Hex2Dez16 ; 16-bit(f1,f0) in 4-stellen Bcd (T,H,Z,E)
movfw HdT
movwf Ziffer0
movfw HdH
movwf Ziffer1
movfw HdZ
movwf Ziffer2
movfw HdE
movwf Ziffer3
return



; 16-bit(f1,f0) in 4-stellen Bcd (T,H,Z,E)
; 1000 = 0000 03E8 h
; 100 = 0000 0064 h
; 10 = 0000 000A h
; 1 = 0000 0001 h
Hex2Dez16
clrf f2

movlw 0x00 ; 1000 = 0000 03E8 h
movwf xw2
movlw 0x03
movwf xw1
movlw 0xE8
movwf xw0
clrf HdX
decf HdX, f
HdLoop5
incf HdX, f
call Sub24
btfss STATUS, C ; Überlauf
goto HdLoop5 ; Stelle 1 mehr
call Add24
movfw HdX
movwf HdT

movlw 0x00 ; 100 = 00 00 64 h
movwf xw2
movwf xw1
movlw 0x64
movwf xw0
clrf HdX
decf HdX, f
HdLoop3
incf HdX, f
call Sub24
btfss STATUS, C ; Überlauf
goto HdLoop3 ; Stelle 1 mehr
call Add24
movfw HdX
movwf HdH

movlw 0x00 ; 10 = 00 00 0A h
movwf xw2
movwf xw1
movlw 0x0A
movwf xw0
clrf HdX
decf HdX, f
HdLoop4
incf HdX, f
call Sub24
btfss STATUS, C ; Überlauf
goto HdLoop4 ; Stelle 1 mehr
call Add24
movfw HdX
movwf HdZ

movfw f0
movwf HdE
return



; Microchip-Bibliothek AN617
;************************************************* *************
; All arguments to the fixed point routines in the math library are passed through
; the locations
; AARGB0,AARGB1,AARGB2,AARGB3
; BARGB0,BARGB1,BARGB2,BARGB3
; with the result in
; AARGB0,AARGB1,AARGB2,AARGB3,AARGB4,AARGB5,AARGB6,A ARGB7
; All fixed point operands are left justified to xARGB0, and are either unsigned or
; in signed two's complement representation.

; To divide the 32 bit signed integer AARG = 0x83-5A-3F-C1 the the 24 bit signed integer
; BARG = 0x5C-3B-E5, simply load AARG and BARG with the appropriate values and call
; FXD3224S. The 32 bit signed quotient, 0xFF-FF-FE-A7, is left justified in AARG and the
; 24 bit signed remainder, 0xA6-F7-5E, is left justified in REM.

#INCLUDE <FXD24.A16>

end

Rico88
23.04.2013, 21:39
Also wie diese Source es offen legt stammt sie von der Homepage von Sprut (http://www.sprut.de). Das ist eine Seite, die ausschließlich von einer Privatperson verwaltet wird und nur Wissen an private Menschen vermitteln soll. Leider werden seine Projekte immer wieder für den Kommerziellen vertrieb genutzt (ohne das Wissen des Autors). Solltest du einen Bausatz gekauft haben (Beispiel eBay), dann ist das ganze eine 100% negative Bewertung wert, sowie einen Vermerk an den Betreiber der Vertriebsseite.
Solltest du den Drehzahlmesser so selber nur nachgebaut haben bin ich sehr enttäuscht, das wir nichts über die Quelle erfahren haben (http://www.sprut.de/electronic/pic/projekte/dehfan/drehfan.htm).

Naja, als Privatperson unterstütze ich gerne. Ich habe dir mal die überarbeiteten Quellen im Anhang. Um im weiteren Verlauf die Auswertgeschwindigkeit erhöhen zu können habe ich lieber den Vorteiler des Timer 1 von 1:8 auf 1:4 angepasst.

Gruß Rico

(Zip-Download: http://www.file-upload.net/download-7508525/drehzahlmesser.zip.html)

Sandro279
23.04.2013, 21:50
den Schaltplan hat mir ein Bekannter geschickt, also wusste ich die Quelle auch nicht
Danke für die super Unterstützung :)

Rico88
23.04.2013, 21:57
Gerne. Würde mich jedoch über nen Feedback freuen, ob nun alles geklappt hat.

Sandro279
23.04.2013, 22:07
ich melde mich wenn alles zusammengebaut ist. Vorraussichtlich Ende der Woche

Sandro279
09.05.2013, 16:09
Vieles ausprobiert, leider ist der Drehzahlmesser ohne Funktion, auch nachdem ich noch einen zweiten zusammengelötet hatte.
Hab jetzt den PIC nochmal ausgelesen und hab das rausbekommen:
nFLASH-Memory:

0000: 2865 3FFF 3FFF 3FFF 00CD 0E03 0183 00CE
0008: 080A 00CF 018A 018E 018F 110C 1C0C 2817
0010: 300A 00D3 00D4 300B 00D5 00D6 281D 0815
0018: 00E5 0816 00E6 1750 16D0 100C 110C 084F
0020: 008A 0E4E 0083 0ECD 0E4D 0009 0782 3418
0028: 34DE 3432 3452 34D4 3451 3411 34DA 3410
0030: 3450 34FF 34F7 1585 1505 1485 1405 1605
0038: 30F7 0486 03D2 1903 2845 0352 1903 284B
0040: 1952 2854 1C52 284E 2851 3005 00D2 0853
0048: 1D03 1185 2857 0854 1105 2857 0855 1085
0050: 2857 0856 1005 2857 1B50 20A2 2864 2026
0058: 0086 1605 3908 1903 1205 1ED0 2864 0352
0060: 0852 1903 1206 12D0 0008 30FF 0086 1605
0068: 1683 3084 0081 3008 0086 30E0 0085 1283
0070: 30FF 0086 1605 141F 149F 151F 018B 3004
0078: 00D2 300B 00D3 00D4 00D5 00D6 1683 3083
0080: 0081 1283 0181 128B 178B 110B 3031 0090
0088: 3006 0097 1206 1005 018E 018F 110C 1D0C
0090: 288F 018E 018F 110C 100C 1683 018C 150C
0098: 1283 1350 018B 170B 178B 1D0B 289D 110B
00A0: 2033 289D 138B 0865 00DF 0866 00E0 01E1
00A8: 178B 300B 00D3 00D4 00D5 00D6 3006 0260
00B0: 1C03 28BC 0861 30E4 00DE 30E1 00DD 30C0
00B8: 00DC 20E8 20FE 110B 1D0B 28BC 110B 1350
00C0: 0008 01D1 085F 02DC 1803 28CD 3001 02DD
00C8: 1803 28CD 02DE 1C03 1451 0860 02DD 1803
00D0: 28D5 3001 02DE 1C03 1451 0861 02DE 1C03
00D8: 1451 1003 1851 1403 0008 085F 07DC 0860
00E0: 1803 0F60 07DD 0861 1803 0F61 07DE 0008
00E8: 085C 00A4 085D 00A5 085E 00A6 3000 00A7
00F0: 085F 00AC 0860 00AD 0861 00AE 2137 0824
00F8: 00DC 0825 00DD 0826 00DE 0008 2108 0857
0100: 00D3 0858 00D4 0859 00D5 085A 00D6 0008
0108: 01DE 3000 00E1 3003 00E0 30E8 00DF 01DB
0110: 03DB 0ADB 20C1 1C03 2911 20DD 085B 00D7
0118: 3000 00E1 00E0 3064 00DF 01DB 03DB 0ADB
0120: 20C1 1C03 291F 20DD 085B 00D8 3000 00E1
0128: 00E0 300A 00DF 01DB 03DB 0ADB 20C1 1C03
0130: 292D 20DD 085B 00D9 085C 00DA 0008 01A9
0138: 01A3 01A2 01A1 0827 0426 0425 0424 1903
0140: 3400 0827 062E 00B3 1BB3 09A9 01B0 1FAE
0148: 2951 09AC 09AD 09AE 0AAC 1903 0AAD 1903
0150: 0AAE 1FA7 295E 09A4 09A5 09A6 09A7 0AA4
0158: 1903 0AA5 1903 0AA6 1903 0AA7 0827 042E
0160: 00B3 1BB3 2A5F 082C 02A1 082D 1C03 0F2D
0168: 02A2 082E 1C03 0F2E 02A3 0DA7 3007 00B4
0170: 0D27 0DA1 0DA2 0DA3 082C 1C27 2981 02A1
0178: 082D 1C03 0F2D 02A2 082E 1C03 0F2E 02A3
0180: 298A 07A1 082D 1803 0F2D 07A2 082E 1803
0188: 0F2E 07A3 0DA7 0BB4 2970 0D26 0DA1 0DA2
0190: 0DA3 082C 1C27 299E 02A1 082D 1C03 0F2D
0198: 02A2 082E 1C03 0F2E 02A3 29A7 07A1 082D
01A0: 1803 0F2D 07A2 082E 1803 0F2E 07A3 0DA6
01A8: 3007 00B4 0D26 0DA1 0DA2 0DA3 082C 1C26
01B0: 29BB 02A1 082D 1C03 0F2D 02A2 082E 1C03
01B8: 0F2E 02A3 29C4 07A1 082D 1803 0F2D 07A2
01C0: 082E 1803 0F2E 07A3 0DA6 0BB4 29AA 0D25
01C8: 0DA1 0DA2 0DA3 082C 1C26 29D8 02A1 082D
01D0: 1C03 0F2D 02A2 082E 1C03 0F2E 02A3 29E1
01D8: 07A1 082D 1803 0F2D 07A2 082E 1803 0F2E
01E0: 07A3 0DA5 3007 00B4 0D25 0DA1 0DA2 0DA3
01E8: 082C 1C25 29F5 02A1 082D 1C03 0F2D 02A2
01F0: 082E 1C03 0F2E 02A3 29FE 07A1 082D 1803
01F8: 0F2D 07A2 082E 1803 0F2E 07A3 0DA5 0BB4
0200: 29E4 0D24 0DA1 0DA2 0DA3 082C 1C25 2A12
0208: 02A1 082D 1C03 0F2D 02A2 082E 1C03 0F2E
0210: 02A3 2A1B 07A1 082D 1803 0F2D 07A2 082E
0218: 1803 0F2E 07A3 0DA4 3007 00B4 0D24 0DA1
0220: 0DA2 0DA3 082C 1C24 2A2F 02A1 082D 1C03
0228: 0F2D 02A2 082E 1C03 0F2E 02A3 2A38 07A1
0230: 082D 1803 0F2D 07A2 082E 1803 0F2E 07A3
0238: 0DA4 0BB4 2A1E 1824 2A47 082C 07A1 082D
0240: 1803 0F2D 07A2 082E 1803 0F2E 07A3 1830
0248: 2A7E 1FA9 3400 09A4 09A5 09A6 09A7 0AA4
0250: 1903 0AA5 1903 0AA6 1903 0AA7 09A1 09A2
0258: 09A3 0AA1 1903 0AA2 1903 0AA3 3400 1FAE
0260: 2A78 1BA7 2A72 0826 00A3 0825 00A2 0824
0268: 00A1 13A3 0DA6 0DA7 0827 00A4 01A7 01A6
0270: 01A5 2A49 01A4 0AA4 01A5 01A6 01A7 3400
0278: 09A7 09A6 09A5 09A4 0AB0 2963 0AA1 1903
0280: 0AA2 1903 0AA3 082C 0221 1D03 2A49 082D
0288: 0222 1D03 2A49 082E 0223 1D03 2A49 01A3
0290: 01A2 01A1 0AA4 1903 0AA5 1903 0AA6 1903
0298: 0AA7 1FA7 2A49 162A 34FF 01A3 01A2 01A1
02A0: 01B3 0D27 0DA1 082C 02A1 082D 1C03 0F2D
02A8: 02A2 082E 1C03 0F2E 02A3 0103 1C03 3001
02B0: 02B3 0DA7 3007 00B4 0D27 0DA1 0DA2 0DA3
02B8: 0DB3 082C 1C27 2ACA 02A1 082D 1C03 0F2D
02C0: 02A2 082E 1C03 0F2E 02A3 0103 1C03 3001
02C8: 02B3 2AD7 07A1 082D 1803 0F2D 07A2 082E
02D0: 1803 0F2E 07A3 0103 1803 3001 07B3 0DA7
02D8: 0BB4 2AB4 0D26 0DA1 0DA2 0DA3 0DB3 082C
02E0: 1C27 2AF0 02A1 082D 1C03 0F2D 02A2 082E
02E8: 1C03 0F2E 02A3 0103 1C03 3001 02B3 2AFD
02F0: 07A1 082D 1803 0F2D 07A2 082E 1803 0F2E
02F8: 07A3 0103 1803 3001 07B3 0DA6 3007 00B4
0300: 0D26 0DA1 0DA2 0DA3 0DB3 082C 1C26 2B16
0308: 02A1 082D 1C03 0F2D 02A2 082E 1C03 0F2E
0310: 02A3 0103 1C03 3001 02B3 2B23 07A1 082D
0318: 1803 0F2D 07A2 082E 1803 0F2E 07A3 0103
0320: 1803 3001 07B3 0DA6 0BB4 2B00 0D25 0DA1
0328: 0DA2 0DA3 0DB3 082C 1C26 2B3C 02A1 082D
0330: 1C03 0F2D 02A2 082E 1C03 0F2E 02A3 0103
0338: 1C03 3001 02B3 2B49 07A1 082D 1803 0F2D
0340: 07A2 082E 1803 0F2E 07A3 0103 1803 3001
0348: 07B3 0DA5 3007 00B4 0D25 0DA1 0DA2 0DA3
0350: 0DB3 082C 1C25 2B62 02A1 082D 1C03 0F2D
0358: 02A2 082E 1C03 0F2E 02A3 0103 1C03 3001
0360: 02B3 2B6F 07A1 082D 1803 0F2D 07A2 082E
0368: 1803 0F2E 07A3 0103 1803 3001 07B3 0DA5
0370: 0BB4 2B4C 0D24 0DA1 0DA2 0DA3 0DB3 082C
0378: 1C25 2B88 02A1 082D 1C03 0F2D 02A2 082E
0380: 1C03 0F2E 02A3 0103 1C03 3001 02B3 2B95
0388: 07A1 082D 1803 0F2D 07A2 082E 1803 0F2E
0390: 07A3 0103 1803 3001 07B3 0DA4 3007 00B4
0398: 0D24 0DA1 0DA2 0DA3 0DB3 082C 1C24 2BAE
03A0: 02A1 082D 1C03 0F2D 02A2 082E 1C03 0F2E
03A8: 02A3 0103 1C03 3001 02B3 2BBB 07A1 082D
03B0: 1803 0F2D 07A2 082E 1803 0F2E 07A3 0103
03B8: 1803 3001 07B3 0DA4 0BB4 2B98 1824 2BCA
03C0: 082C 07A1 082D 1803 0F2D 07A2 082E 1803
03C8: 0F2E 07A3 3400 01A3 01A2 01A1 082C 02A1
03D0: 082D 1C03 0F2D 02A2 082E 1C03 0F2E 02A3
03D8: 0DA7 3007 00B4 0D27 0DA1 0DA2 0DA3 082C
03E0: 1C27 2BEC 02A1 082D 1C03 0F2D 02A2 082E
03E8: 1C03 0F2E 02A3 2BF5 07A1 082D 1803 0F2D
03F0: 07A2 082E 1803 0F2E 07A3 0DA7 0BB4 2BDB
03F8: 0D26 0DA1 0DA2 0DA3 082C 1C27 2C09 02A1
0400: 082D 1C03 0F2D 02A2 082E 1C03 0F2E 02A3
0408: 2C12 07A1 082D 1803 0F2D 07A2 082E 1803
0410: 0F2E 07A3 0DA6 3007 00B4 0D26 0DA1 0DA2
0418: 0DA3 082C 1C26 2C26 02A1 082D 1C03 0F2D
0420: 02A2 082E 1C03 0F2E 02A3 2C2F 07A1 082D
0428: 1803 0F2D 07A2 082E 1803 0F2E 07A3 0DA6
0430: 0BB4 2C15 0D25 0DA1 0DA2 0DA3 082C 1C26
0438: 2C43 02A1 082D 1C03 0F2D 02A2 082E 1C03
0440: 0F2E 02A3 2C4C 07A1 082D 1803 0F2D 07A2
0448: 082E 1803 0F2E 07A3 0DA5 3007 00B4 0D25
0450: 0DA1 0DA2 0DA3 082C 1C25 2C60 02A1 082D
0458: 1C03 0F2D 02A2 082E 1C03 0F2E 02A3 2C69
0460: 07A1 082D 1803 0F2D 07A2 082E 1803 0F2E
0468: 07A3 0DA5 0BB4 2C4F 0D24 0DA1 0DA2 0DA3
0470: 082C 1C25 2C7D 02A1 082D 1C03 0F2D 02A2
0478: 082E 1C03 0F2E 02A3 2C86 07A1 082D 1803
0480: 0F2D 07A2 082E 1803 0F2E 07A3 0DA4 3007
0488: 00B4 0D24 0DA1 0DA2 0DA3 082C 1C24 2C9A
0490: 02A1 082D 1C03 0F2D 02A2 082E 1C03 0F2E
0498: 02A3 2CA3 07A1 082D 1803 0F2D 07A2 082E
04A0: 1803 0F2E 07A3 0DA4 0BB4 2C89 1824 2CB2
04A8: 082C 07A1 082D 1803 0F2D 07A2 082E 1803
04B0: 0F2E 07A3 3400 3FFF 3FFF 3FFF 3FFF 3FFF
04B8: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
04C0: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
04C8: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
04D0: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
04D8: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
04E0: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
04E8: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
04F0: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
04F8: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0500: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0508: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0510: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0518: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0520: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0528: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0530: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0538: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0540: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0548: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0550: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0558: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0560: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0568: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0570: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0578: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0580: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0588: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0590: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0598: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
05A0: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
05A8: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
05B0: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
05B8: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
05C0: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
05C8: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
05D0: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
05D8: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
05E0: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
05E8: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
05F0: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
05F8: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0600: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0608: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0610: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0618: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0620: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0628: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0630: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0638: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0640: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0648: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0650: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0658: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0660: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0668: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0670: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0678: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0680: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0688: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0690: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0698: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
06A0: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
06A8: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
06B0: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
06B8: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
06C0: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
06C8: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
06D0: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
06D8: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
06E0: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
06E8: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
06F0: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
06F8: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0700: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0708: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0710: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0718: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0720: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0728: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0730: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0738: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0740: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0748: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0750: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0758: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0760: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0768: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0770: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0778: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0780: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0788: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0790: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0798: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
07A0: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
07A8: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
07B0: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
07B8: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
07C0: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
07C8: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
07D0: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
07D8: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
07E0: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
07E8: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
07F0: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
07F8: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF

ID0: F
ID1: F
ID2: F
ID3: F

Device-ID: 1068

Config-Word: 3F21

EEPROM-Memory:

2100: FF FF FF FF FF FF FF FF
2108: FF FF FF FF FF FF FF FF
2110: FF FF FF FF FF FF FF FF
2118: FF FF FF FF FF FF FF FF
2120: FF FF FF FF FF FF FF FF
2128: FF FF FF FF FF FF FF FF
2130: FF FF FF FF FF FF FF FF
2138: FF FF FF FF FF FF FF FF
2140: FF FF FF FF FF FF FF FF
2148: FF FF FF FF FF FF FF FF
2150: FF FF FF FF FF FF FF FF
2158: FF FF FF FF FF FF FF FF
2160: FF FF FF FF FF FF FF FF
2168: FF FF FF FF FF FF FF FF
2170: FF FF FF FF FF FF FF FF
2178: FF FF FF FF FF FF FF FF

Ich weiß nur jetzt nichtmehr an was es außer am PIC noch liegen kann.

PsiQ
13.05.2013, 17:51
Sorry wenn ich da jetzt etwas -Offtopic- werde, aber ich habe folgenden einfachen Digi Drehzahlmesser in 2 Varianten erfolgreich gebaut:
Keine Programmierung oder µC nötig, einfacher Lochraster reicht...
http://www.digitaler-drehzahlmesser.de/

Auf der Seite mit der maus über "Drehzahlmesser" fahren, dann kommen die Unterseiten. Im download Bereich gibts Schaltpläne etc.
Die sehr einfache Schaltung macht aus der Zündspulenfrequenz eine Spannung, und diese Spannung wird dann über Spannungsteiler auf mehrere ICs verteilt
die jeweils ihre paar LEDs passend bestromen. Von deren Anzahl hängt auch die maximale Auflösung/ LED Zahl ab.

Der Drehzahlmesser braucht zum Glück kein TÜV, solang er nicht den Tacho o.ä. verdeckt. Bei mir gabs dort keine Probleme damit.

Rico88
13.05.2013, 22:06
Also ein kurzer Blick auf die von dir eingestellte HEX sagt eigentlich schon sehr deutlich aus, das der vom Controller ausgelesene Code keine Übereinstimmung zum ursprünglichen HEX hat. Würe es nochmal mit einem neuen Beschreiben versuchen. Womit versuchst du denn nun den PIC zu beschreiben?

Sandro279
14.05.2013, 17:22
mit einem bausatz von conrad vellemann k8048 hab auch schon ein paar mal neu programmiert hat nicht funktioniert

PsiQ
16.05.2013, 11:51
Hast du den vellemann progger an ner spannungsquelle mit 13-14V?
Den P8048 hab ich selber auch und der hat bei direkt 12V wegen regler und diode glaub manchmal probleme mitm proggen.
Ist aber schon lange her , weiß nur noch dass der die "über" 12V gebraucht hat um manche pic korrekt zu programmieren.
Schau doch dafür mal in das PIC-Progger Forum.
Evtl kannst du dort/da ja mal n anderes testprogramm draufbrennen und das gegenchecken obs tut.

Hmmm... *staub wegpust*. Könnte meinen vellemann mal ausmotten, mitm usb-rs232 wandler versehen und per dc-dc wandler 5V:12V über usb port versorgen...hmm.
wollte eh wieder µC programmieren anfangen.