Zprovoznění hodin na PIC16F628A

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
markoni
Příspěvky: 2312
Registrován: 30 říj 2006, 00:00
Bydliště: Poblíž Zlína
Kontaktovat uživatele:

Zprovoznění hodin na PIC16F628A

#1 Příspěvek od markoni »

Zdravím
Potřeboval bych aby mi šli hodiny na PIC16F628A frekvence krystalu 20 MHz na bázi přerušení prostě aby šly ti hodiny na pozadí s tím že v hlavním programu by jsem testoval teplotní čidlo DS18S20 určitě je nějaká rutina na ty hodiny nevíte kde? díky
Uživatelský avatar
kony2807
Příspěvky: 305
Registrován: 29 črc 2007, 00:00
Bydliště: Ostrava

#2 Příspěvek od kony2807 »

Což takhle modul časovače ? A že v procesoru není jen jeden !
http://ww1.microchip.com/downloads/en/D ... 40044G.pdf - študuj od strany 47 ...
Pak už to je jen otázkou vhodného zpracování v přerušení :wink: .

EDIT: Teď mě tak napadá , pokud by si chtěl jednoduchost programu a vysokou přesnost hodin a jsi ochoten si za to připlatit , je vhodné použití specializovaného obvodu , např. DS3234 - http://datasheets.maxim-ic.com/en/ds/DS3234.pdf ...
Uživatelský avatar
markoni
Příspěvky: 2312
Registrován: 30 říj 2006, 00:00
Bydliště: Poblíž Zlína
Kontaktovat uživatele:

#3 Příspěvek od markoni »

Kód: Vybrat vše

INTR MOVWF MEM_W
     SWAPF STATUS,W
     MOVWF MEM_S
     BCF STATUS,RP0
   
     MOVLW 100
     MOVWF TMR0
     INCF TMR,F
     MOVFW TMR
     XORLW 100
     BTFSS STATUS,Z
     GOTO CAS_1
     CLRF TMR
     INCF SEC,F
     MOVFW SEC
     XORLW 60
     BTFSS STATUS,Z
     goto CAS
     CLRF SEC
     INCF MIN,F
     MOVFW MIN
     XORLW 60
     BTFSS STATUS,Z
     GOTO CAS
     CLRF MIN
     INCF HOD,F
     MOVFW HOD
     XORLW 24
      BTFSC STATUS,Z
      CLRF HOD
      goto CAS_1
CAS     MOVLW 132
CAS_1
      BCF INTCON,T0IF
      SWAPF MEM_S,W
      MOVWF STATUS
      SWAPF MEM_W,F
      SWAPF MEM_W,W
     RETFIE

Kde dělám chybu?
Uživatelský avatar
kony2807
Příspěvky: 305
Registrován: 29 črc 2007, 00:00
Bydliště: Ostrava

#4 Příspěvek od kony2807 »

Bylo by vhodné ke kódu napsat alspoň popisky jednotlivých operací , v surovém kódu se těžko orientuje , obzvláště vhodné , pokud se ke stejnému kódu budeš vracet s odstupem času , pokaždé by si musel znovu dešifrovat funkci , použité proměnné , atd ...
Kažodopádně , zkontroluj si inicializaci časovače , přerušení a nastavení předděličky , nebo sem rovnou napiš celý tvůj INIT blok :wink: .
Uživatelský avatar
markoni
Příspěvky: 2312
Registrován: 30 říj 2006, 00:00
Bydliště: Poblíž Zlína
Kontaktovat uživatele:

#5 Příspěvek od markoni »

Abys rozuměl to mě chodilo původně na 16F84A 4MHz tak to bude asi špatně nastavená předdělička nicméně přikládám INIT

Kód: Vybrat vše

  BSF STATUS,RP0
  MOVLW B'00110001'
  MOVWF TRISB
  MOVLW B'11000101'
  MOVWF OPTION_REG
  BCF STATUS,RP0
  MOVLW B'10100000'
  MOVWF INTCON

a uvítal bych ten datashet PIC16F628A česky (já a angličtina to nejde do hromady pro mě bohužel :smash:) některé překlady jsou na http://doveda.byl.cz/historie.htm ale na ten můj typ jak na podporu ne!!díky.
Uživatelský avatar
Atlan
Příspěvky: 4514
Registrován: 10 kvě 2004, 00:00
Bydliště: Košice

#6 Příspěvek od Atlan »

Ak som dopre pochopil....4Mhz /4 = 1Mhz zakladny takt ide to predelicky tj /64 a este / 255-100=155 (ta stovka je cislo davane do TMR) tj prerusenie kazdych 9,920 atd ms


TAk ze do TMR0 daj 224 a s urcitoiu presnostou by to malo ist tak ako na 4Mhz
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#7 Příspěvek od Andrea »

Hlavně také nezapomenout na to, že nezakázaná přerušení můžou "kecat" do toho přenosu po 1W, takže může docházet k chybám.
Uživatelský avatar
markoni
Příspěvky: 2312
Registrován: 30 říj 2006, 00:00
Bydliště: Poblíž Zlína
Kontaktovat uživatele:

#8 Příspěvek od markoni »

nepomáhá to asi ta předdělička je spatně nastavená na jakou hodnotu ji nastavit? při přičtení 1 sekundy tak mám na panelu Stopwatch je to co tam je viz screen díky.
Přílohy
screen0.JPG
(140.12 KiB) Staženo 126 x
Uživatelský avatar
kony2807
Příspěvky: 305
Registrován: 29 črc 2007, 00:00
Bydliště: Ostrava

#9 Příspěvek od kony2807 »

Tož kolego, máte to naservírováno až podnos na mejlu - zprovozněné a upravené tak , aby se v tom dalo vyznat . :wink:
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“