Zeitmessung

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 25 11 2024  20:25:11      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte


Autor
Zeitmessung

    







BID = 139901

Imyourdaddy

Gerade angekommen


Beiträge: 7
Wohnort: Wien
ICQ Status  
 

  


Ich bins nochmal...
Ich simulier und simulier aber es will einfach nicht funktinieren. Hat jemand von euch schon mal eine Uhr oder eine Zeitmessung auf einem LCD (PIC16F8x) programmiert?

Mir kommt immer mehr vor als ob ich die ganze Zeitnehmung neu stricken muss.
Könnte mir jemand sagen wie man das sonst lösen könnte?

Siehe "Zeitnehmung"?

Hat jemand ein Flussdiagramm, oder so?

Danke im Voraus

BID = 140107

SIGINT

Stammposter



Beiträge: 381
Wohnort: Mönchengladbach

 

  

Hi Imyourdaddy,
ich hab mal vor ca. 2 Jahren eine Digitaluhr mit dem PIC16F84 programmiert, ich hatte allerdings das Problem,daß
ich mit einem 4MHz keine genaue Zeitmessung realisieren konnte. Die Uhr lief pro Tag ca. 5min nach. Ich schau mal nach,ob ich den Code noch irgendwo finde.

Gruß,
SIGINT

BID = 140118

Imyourdaddy

Gerade angekommen


Beiträge: 7
Wohnort: Wien
ICQ Status  

He das wär ja super...(hast du das zufällig als c-code?) sonst auch egal!
Super,Danke schon mal im Voraus!

BID = 140167

SIGINT

Stammposter



Beiträge: 381
Wohnort: Mönchengladbach

Hi,
leider hab ich den Code nicht als C- Programm,sondern nur als ASM. Ich bin mir nicht sicher,ob diese Version wirklich OK ist, heute würde ich das wahrscheinlich anders machen.


Code :


LCD_DATA EQU PORTB
LCD_DATA_TRIS EQU TRISB
LCD_CTRL EQU PORTA
LCD_RS EQU 0x00
LCD_RW EQU 0x01
LCD_E EQU 0x02


wait_loop EQU 0x20
loop EQU 0x22
temp EQU 0x21
w_temp EQU 0x22
s_temp EQU 0x23
p_temp EQU 0x24
clock_timer EQU 0x25
update EQU 0x26
wait_w EQU 0x27
tc EQU 0x5f
wtemp EQU 0x30

h1 EQU 0x28
h10 EQU 0x29
m1 EQU 0x2a
m10 EQU 0x2b
s1 EQU 0x2c
s10 EQU 0x2d

fastinc EQU 0x2e
toggle EQU 0x2f



org 0x00
goto INIT

org 0x04
ISR
movwf w_temp
swapf STATUS,W
bcf STATUS,RP0
movwf s_temp
swapf PCLATH,W
movwf p_temp


bcf STATUS,Z
decfsz clock_timer,F
goto exit_int
movlw tc
movwf clock_timer

movf PORTA,W
andlw 0xf8
bcf STATUS,Z
xorlw 0x00
btfss STATUS,Z
goto chk_btn
movlw 0x00
movwf s1
movwf s10
goto ret_from_int


chk_btn
btfsc PORTA,3
goto check_hour
movlw tc
movwf clock_timer
bcf STATUS,C
rrf clock_timer,F
bcf STATUS,c
goto inc_min
check_hour
btfss PORTA,4
goto inc_hour


inc_sec
incf s1,F
movf s1,W
bcf STATUS,Z
xorlw 0x0A
btfss STATUS,Z
goto ret_from_int
movlw 0x00
movwf s1

incf s10,F
movf s10,W
bcf STATUS,Z
xorlw 0x06
btfss STATUS,Z
goto ret_from_int
movlw 0x00
movwf s10

inc_min
incf m1,F
movf m1,W
bcf STATUS,Z
xorlw 0x0A
btfss STATUS,Z
goto ret_from_int
movlw 0x00
movwf m1

incf m10,F
movf m10,W
bcf STATUS,Z
xorlw 0x06
btfss STATUS,Z
goto ret_from_int
movlw 0x00
movwf m10

inc_hour
incf h1,F
movf h1,W
bcf STATUS,Z
xorlw 0x0a
btfss STATUS,Z
goto ret_from_int
movlw 0x00
movwf h1

incf h10,F
movf h10,W
bcf STATUS,Z
xorlw 0x02
btfss STATUS,Z
goto ret_from_int
movf h1,W
bcf STATUS,Z
xorlw 0x04
btfss STATUS,Z
goto ret_from_int
movlw 0x00
movwf h1
movwf h10

ret_from_int

movf toggle,W
bcf STATUS,Z
xorlw 0x3a
movlw 0x3a
btfsc STATUS,Z
movlw 0xa0
movwf toggle


movlw 0x02
call LCDPUTCMD
movf h10,W
addlw 0x30
call LCDPUTDATA
movf h1,W
addlw 0x30
call LCDPUTDATA
movf toggle,W
call LCDPUTDATA
movf m10,W
addlw 0x30
call LCDPUTDATA
movf m1,W
addlw 0x30
call LCDPUTDATA
movf toggle,W
call LCDPUTDATA
movf s10,W
addlw 0x30
call LCDPUTDATA
movf s1,W
addlw 0x30
call LCDPUTDATA

exit_int


swapf p_temp,W
movwf PCLATH
swapf s_temp,W
movwf STATUS
swapf w_temp,F
swapf w_temp,W
bcf INTCON, T0IF
retfie




INIT
bsf STATUS,RP0
movlw 0x18
movwf TRISA
clrf TRISB
bcf OPTION_REG,T0CS
bcf OPTION_REG,PSA
bsf OPTION_REG,PS0
bcf OPTION_REG,PS1
bsf OPTION_REG,PS2
bcf STATUS,RP0
clrf PORTA
clrf PORTB
clrf h1
clrf h10
clrf m1
clrf m10
clrf s1
clrf s10
movlw tc
movwf clock_timer
goto main


WAIT
movwf wait_w
movlw 0xFF
movwf wait_loop
wloop
decfsz wait_loop,F
goto wloop
movf wait_w,W
return

LCDPUTCMD
movwf temp
call LCDWAIT
bcf LCD_CTRL,LCD_RS
bcf LCD_CTRL,LCD_RW
bsf LCD_CTRL,LCD_E
call WAIT
swapf temp,W
movwf LCD_DATA
bcf LCD_CTRL,LCD_E
call WAIT
bsf LCD_CTRL,LCD_E
call WAIT
movf temp,W
movwf LCD_DATA
bcf LCD_CTRL,LCD_E
return


LCDPUTDATA
movwf temp
call LCDWAIT
bsf LCD_CTRL,LCD_RS
bcf LCD_CTRL,LCD_RW
bsf LCD_CTRL,LCD_E
call WAIT
swapf temp,W
movwf LCD_DATA
bcf LCD_CTRL,LCD_E
call WAIT
bsf LCD_CTRL,LCD_E
call WAIT
movf temp,W
movwf LCD_DATA
bcf LCD_CTRL,LCD_E
return

LCDINIT
movlw 0xa0
movwf temp
lcdinitloop
call WAIT
decfsz temp,F
goto lcdinitloop
bcf LCD_CTRL,LCD_RS
bcf LCD_CTRL,LCD_RW
bsf LCD_CTRL,LCD_E
call WAIT
movlw 0x03
movwf LCD_DATA
bcf LCD_CTRL,LCD_E
call WAIT
call WAIT
bsf LCD_CTRL,LCD_E
call WAIT
call WAIT
bcf LCD_CTRL,LCD_E
call WAIT
call WAIT
bsf LCD_CTRL,LCD_E
call WAIT
call WAIT
bcf LCD_CTRL,LCD_E
call LCDWAIT
call WAIT
bsf LCD_CTRL,LCD_E
movlw 0x02
movwf LCD_DATA
call WAIT
call WAIT
bcf LCD_CTRL,LCD_E
movlw 0x20
call LCDPUTCMD
movlw 0x0C
call LCDPUTCMD
movlw 0x01
call LCDPUTCMD
return

LCDWAIT
BSF STATUS,RP0
MOVLW 0xFF
MOVWF LCD_DATA_TRIS
BCF STATUS, RP0
BCF LCD_CTRL, LCD_RS
BSF LCD_CTRL, LCD_RW
do_check
BSF LCD_CTRL, LCD_E
MOVF LCD_DATA, W
movwf wtemp
BCF LCD_CTRL, LCD_E
call WAIT
BSF LCD_CTRL, LCD_E
call WAIT
bcf LCD_CTRL, LCD_E
movf wtemp,W
ANDLW 0x08
BTFSS STATUS, Z
GOTO do_check
lcdnotbusy
BCF LCD_CTRL, LCD_RW
BSF STATUS, RP0
MOVLW 0x000
MOVWF LCD_DATA_TRIS
BCF STATUS, RP0
return


main
call LCDINIT
bsf INTCON,T0IE
bcf INTCON,T0IF
bsf INTCON,GIE
mainloop
goto mainloop

end




Gruß,
SIGINT

BID = 140220

Imyourdaddy

Gerade angekommen


Beiträge: 7
Wohnort: Wien
ICQ Status  

Hallo, danke trotzdem!!
lg Günther


Zurück zur Seite 0 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 20 Beiträge im Durchschnitt pro Tag       heute wurden bisher 12 Beiträge verfasst
© x sparkkelsputz        Besucher : 182399256   Heute : 6454    Gestern : 7548    Online : 595        25.11.2024    20:25
6 Besucher in den letzten 60 Sekunden        alle 10.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0758850574493