www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

multipleksirano krmiljenje 7 seg LED - PROBLEM

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
mannetou
Član
Član



Pridružen-a: Pet 08 Jan 2010 20:34
Prispevkov: 26
Aktiv.: 0.13
Kraj: LJ

PrispevekObjavljeno: Pon Mar 21, 2011 2:10 pm    Naslov sporočila:  multipleksirano krmiljenje 7 seg LED - PROBLEM Odgovori s citatom

Še vedno imam probleme s multipleksiranim prikazovanjem na dva 7-segmentna LED displeja. Da bi razumel zakaj ne deluje sem spisal en čist preprost program, ki pa prav tako ne deluje. Kje je napaka?

Koda:
#INCLUDE   P16F886.INC

   __CONFIG    _CONFIG1, _DEBUG_ON & _LVP_OFF & _FCMEN_OFF & _IESO_OFF & _BOR_OFF & _CPD_OFF &   _CP_OFF & _MCLRE_ON & _PWRTE_OFF & _WDT_OFF & _HS_OSC
   __CONFIG    _CONFIG2, _WRT_OFF & _BOR21V

   ZAK_ST1      EQU      0x22
   ZAK_ST2      EQU      0x23
   ZAK_ST3      EQU      0x24



   ORG      0x0000
   NOP
   CALL   INIT_IO
   GOTO   GLAVNA_ZANKA

   ORG      0x0004

GLAVNA_ZANKA
   CALL   PRIKAZ_ENIC
   CALL   ZAKASNITEV
   CALL   PRIKAZ_DESETIC
   CALL   ZAKASNITEV
   GOTO   GLAVNA_ZANKA
;-------------------------------------------------------------------------------------
PRIKAZ_ENIC
   BSF      PORTC,4
   MOVLW   B'10001000'
   MOVWF   PORTB
   BCF      PORTC,5
   RETURN
;-------------------------------------------------------------------------------------
PRIKAZ_DESETIC
   BSF      PORTC,5
   MOVLW   B'10100011'
   MOVWF   PORTB
   BCF      PORTC,4
   RETURN
;-------------------------------------------------------------------------------------
ZAKASNITEV
   MOVLW   .5
   MOVWF   ZAK_ST1
_ZAK_1
   MOVLW   .5
   MOVWF   ZAK_ST2
_ZAK_2
   MOVLW   .55
   MOVWF   ZAK_ST3
_ZAK_3
   DECFSZ   ZAK_ST3,F
   GOTO   _ZAK_3
   DECFSZ   ZAK_ST2,F
   GOTO   _ZAK_2
   DECFSZ   ZAK_ST1,F
   GOTO   _ZAK_1
   RETURN

;-------------------------------------------------------------------------------------
INIT_IO
   BANKSEL   ANSEL
   CLRF   ANSEL
   CLRF   ANSELH

   BANKSEL   TRISA
   MOVLW   B'11111111'
   MOVWF   TRISA
   MOVLW   B'10000000'
   MOVWF   TRISB
   MOVLW   B'11001111'
   MOVWF   TRISC
   MOVLW   B'00001000'
   MOVWF   TRISE

   BANKSEL   PORTA
   MOVLW   B'11111111'
   MOVWF   PORTA
   MOVLW   B'11111111'
   MOVWF   PORTB
   MOVLW   B'11111111'
   MOVWF   PORTC
   MOVLW   B'00001000'
   MOVWF   PORTE

   RETURN
;-------------------------------------------------------------------------------------

   END
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
gumby
Član
Član



Pridružen-a: Sob 28 Apr 2007 12:32
Prispevkov: 4066
Aktiv.: 17.60

PrispevekObjavljeno: Pon Mar 21, 2011 2:16 pm    Naslov sporočila:   Odgovori s citatom

"ne deluje" pomeni kaj?
_________________
Tule nisem več aktiven.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
mannetou
Član
Član



Pridružen-a: Pet 08 Jan 2010 20:34
Prispevkov: 26
Aktiv.: 0.13
Kraj: LJ

PrispevekObjavljeno: Pon Mar 21, 2011 2:26 pm    Naslov sporočila:   Odgovori s citatom

Ne deluje mi pri debagiranju z ICD2. Deluje, če izklopim MCLR pin in DEBUG in prenesem program na pic. Pri razhroščevanju pa se stalno prekinja.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
gumby
Član
Član



Pridružen-a: Sob 28 Apr 2007 12:32
Prispevkov: 4066
Aktiv.: 17.60

PrispevekObjavljeno: Pon Mar 21, 2011 2:52 pm    Naslov sporočila:   Odgovori s citatom

Skrajšaj zakasnitve na par us in glej po korakih, kaj se dogaja...
_________________
Tule nisem več aktiven.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
mannetou
Član
Član



Pridružen-a: Pet 08 Jan 2010 20:34
Prispevkov: 26
Aktiv.: 0.13
Kraj: LJ

PrispevekObjavljeno: Tor Mar 22, 2011 10:08 am    Naslov sporočila:   Odgovori s citatom

Prikazovanje deluje, tudi če s prekinitvijo postavljam zastavico za izmenično prikazovanje na displeja, kakor hitro pa dodam še eno prekinitev, se začne obnašati zelo čudno. Malo sem gledal z osciloskopom in mi na portu b, ki ga uporabljam za izpis, na pinu RB6/ICSPCLK preklaplja med 3,5 in 5 V. Ampak to počne, ko ni v debug mode-u.

Je mogoče kakšna strojna omejitev kako hitro se lahko porti izklapljajo in vklapljajo? Ker po korakih večinoma deluje tako kot mora, problem se pojavi, ko se program sam izvaja.


Nazadnje urejal/a mannetou Tor Mar 22, 2011 10:21 am; skupaj popravljeno 1 krat
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
MarkoM
Član
Član



Pridružen-a: Tor 12 Sep 2006 15:29
Prispevkov: 2825
Aktiv.: 11.84
Kraj: Lovrenc na P.

PrispevekObjavljeno: Tor Mar 22, 2011 10:15 am    Naslov sporočila:   Odgovori s citatom

mannetou je napisal/a:
Je mogoče kakšna strojna omejitev kako hitro se lahko porti izklapljajo in vklapljajo? Ker po korakih večinoma deluje tako kot mora, problem se pojavi, ko se program sam izvaja.

Če dela v debugu po korakih, ko se pa program izvaja pa ne, pomeni, da imaš prekratke zakasnitve.

Sicer mi ni jasno, ker enkrat govoriš, da ti dela v debug pa v realese ne, drugič pa ravno obratno.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mannetou
Član
Član



Pridružen-a: Pet 08 Jan 2010 20:34
Prispevkov: 26
Aktiv.: 0.13
Kraj: LJ

PrispevekObjavljeno: Tor Mar 22, 2011 10:30 am    Naslov sporočila:   Odgovori s citatom

MarkoM je napisal/a:

Sicer mi ni jasno, ker enkrat govoriš, da ti dela v debug pa v realese ne, drugič pa ravno obratno.


Ja v debug po korakih deluje, ne deluje pa v RUN. To velja tudi za zgornji program, ki pa deluje v release.

Z eno prekinitvijo, pri kateri postavljam zastavico, tudi deluje. Torej je timing ok?

Ko dodam še eno prekinitev se pa vse poruši. Deluje edino v debug po korakih. Dodam brakepoint in tisti del kode, ki je namenjen za prikaz deluje po korakih ok.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 233 dni


Powered by phpBB © 2001, 2005 phpBB Group