seriál s PIC od p. Špringla občasný problém

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

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
abcdef
Příspěvky: 134
Registrován: 01 bře 2007, 01:00

seriál s PIC od p. Špringla občasný problém

#1 Příspěvek od abcdef »

Ahojte. Pekne Vás prosím, poradte mi s mojim problémom.
Studujem ako samouk články z PE "Mikrokontroléry PIC" ktoré uverejňuje Vít Špringl.
Teraz som v dieli 19(PE7/2009) kde treba odskúšať "první projekt blikajíci LED".
Stiahol som si súbor pic19(asm) zo stránok PE, preložil prekladačom MPLAB do HEX súboru
Mám programátor BeeProg od Elnecu a MCU programujem v ZIF pätici, preto som zo schémy (nižšie) vypustil úplne všetko okrem odporu 1k a LED
Ked do MCU nahrám program, vložím ho do kontaktného poľa a pripojím na napätie, tak LED nefunguje.
Iba občas bliká ale to musím dať ideálny jednosmerný zdroj - baterku. S ňou to bliká iba vtedy keď priblížim ruku k MCU. Potom už väčšinou ostane blikať kým nevypnem a nezapnem napájanie
Keď je to na sieťovom zdroji tak je to ešte horšie
V obidvoch prípadoch nepomáhajú ani filtračné ani blokovacie kondenzátory.
Dík za pomoc...
Přílohy
diel 19 (7_2009).rar
diel 19 (7/2009)
(77.94 KiB) Staženo 167 x
Naposledy upravil(a) abcdef dne 30 pro 2010, 12:09, celkem upraveno 1 x.

Uživatelský avatar
procesor
Příspěvky: 5284
Registrován: 02 říj 2009, 02:00
Bydliště: PO

#2 Příspěvek od procesor »

Zapoj aj 10k na Pin4 a VCC

Uživatelský avatar
abcdef
Příspěvky: 134
Registrován: 01 bře 2007, 01:00

#3 Příspěvek od abcdef »

dakujem, vyskúsam

Uživatelský avatar
procesor
Příspěvky: 5284
Registrován: 02 říj 2009, 02:00
Bydliště: PO

#4 Příspěvek od procesor »

A lepšie oba, neviem ako máš nastavené v config prepojky.

Uživatelský avatar
abcdef
Příspěvky: 134
Registrován: 01 bře 2007, 01:00

#5 Příspěvek od abcdef »

zapojil som 10k medzi pin4 a Vdd a funguje. Dakujem. Asi nesmie byť MCLR/RA5 vo "vzduchu". Ale programovo by sa to dalo asi nakonfigurovať, aby tam nemusel ísť odpor. Ale to ešte neviem ... . Idem studovať dalej

Uživatelský avatar
Atlan
Příspěvky: 4499
Registrován: 10 kvě 2004, 02:00
Bydliště: Košice

#6 Příspěvek od Atlan »

nestuduj dalo.....len musis f configuracii zakazat MLRC.

Uživatelský avatar
Chenzee
Příspěvky: 464
Registrován: 26 čer 2007, 02:00
Bydliště: Vysočina

#7 Příspěvek od Chenzee »

... jen ať studuje. :wink:
Žádnej učenej z nebe nespadl ...

Uživatelský avatar
abcdef
Příspěvky: 134
Registrován: 01 bře 2007, 01:00

pokusam sa zmeniť "beziace svetlo" na "beziac

#8 Příspěvek od abcdef »

ahojte. teraz si neviem poradiť, ako mám podľa "úlohy 2" (diel 23, PE11/2009) zmeniť program "bežiace svetlo" na "bežiaca diera".
Nejakým spôsobom musím upraviť, aby po inicializácii boli na PORTB namiesto núl samé jednotky. Spravil som to podľa vlastných úvah, ale pri simulácii okne WATCH mám aj tak samé nuly, takže to nefunguje :(
Tiež som zmenil inštrukcie BTFSS na BTFSC

mohli by ste mi poradiť prosím kde robím chybu ? ďakujem...

nemám možnosť poslať teraz schému, ale je tam 8 LED pripojených na PORTB, katódou na zem
Přílohy
Úloha 2 (Invertovaný svit LED (bez HW)).rar
(1.84 KiB) Staženo 137 x

Uživatelský avatar
Atlan
Příspěvky: 4499
Registrován: 10 kvě 2004, 02:00
Bydliště: Košice

#9 Příspěvek od Atlan »

ty na to prides len poznamka ...najprv musys vybrat banku
BANKSEL PORTB

az potom mozes zapisovat na dany register/port lebo ty ti o mas v inicializacii hned naopak.... tak ze nanastavis na porte B zame jednotky ale zapises to cislo niekam inam tj do banky 1

Uživatelský avatar
abcdef
Příspěvky: 134
Registrován: 01 bře 2007, 01:00

#10 Příspěvek od abcdef »

Dakujem ti Atlan moj. Moje MOVLW a MOVLW som dal až za výber banky a funguje to.
Ale namiesto jednej "bežiacej diery" bežali(vo WATCH) dve. Tak som namiesto BCF bitu Carry napísal BSF STATUS, C a už je len jedna diera - OK.
Teraz to idem vyskúšať v kontaktnom poli
dík

Uživatelský avatar
abcdef
Příspěvky: 134
Registrován: 01 bře 2007, 01:00

#11 Příspěvek od abcdef »

ospravedlnujem sa ze znova otravujem, ale neviem si poradiť ani s úlohou 3.
Tuná treba zmeniť "bežiace svetlo" tak aby nebehalo od "mantinela k mantinelu", ale aby rotovalo stále dookola a NESMIE nastať stav, že pri prechode z PORTB, 7 na PORTB, 0 všetky LED na okamih zhasnú.

Prerobiť na "bežiace dookola" je jednoduché, ale vôbec neviem zabrániť aby LED nezhasli pri prechode z LED7 na LED0. Už som skúšal kadejaké inštrukcie, ale nič nepomohlo. Buď sa mi začal PORTB plniť čoraz viac "jednotkami", alebo tam bola stále medzera.

Má to vôbec riešenie ?

podľa mňa je hlavná komplikácia v tom že všetky bity rotujú aj cez bit CARRY v registri STATUS, preto sa tam tá jednotka na chvíľu "stratí". Keby sa dal bit C v STATUS nejako zakázať alebo obísť bolo by po probléme

V prílohe je origo výpis od "mantinela k mantinelu" a moja úprava "stále dookola", kde neviem zabrániť zhasnutiu LED.

dík
Přílohy
Úloha 3 (beziace sv. dookola bez medzery).rar
(1.7 KiB) Staženo 117 x

Uživatelský avatar
Chenzee
Příspěvky: 464
Registrován: 26 čer 2007, 02:00
Bydliště: Vysočina

#12 Příspěvek od Chenzee »

Pokud myslíš, aby ani v simulátoru nebyla pauza 1 krok, tak by se to muselo řešit jinak, ale pokud to může na 1 krok zhasnout, tak vyzkoušej dát toto:
BTFSC PORTB,7
RLF PORTB, f ; rotace registru PORTB vlevo
tzn.:

BTFSC PORTB,7
RLF PORTB, f ; rotace registru PORTB vlevo
RLF PORTB, f ; rotace registru PORTB vlevo
CALL DELAY ; volání čekací smyčky
GOTO ROT_LEFT

rozborku programu nechám na Tobě a simulátoru ;-)
Žádnej učenej z nebe nespadl ...

Uživatelský avatar
abcdef
Příspěvky: 134
Registrován: 01 bře 2007, 01:00

#13 Příspěvek od abcdef »

- Moje riešenie: na hovno. Pri prechode z RB7 do RB0, LED zhasli na celý jeden
prac. cyklus


- Chenzee riešenie: SUPER

- bolo treba opačne rozmýšľať. Ja som stále chcel logicky použiť inštrukciu
BTFSS RORTB, 7 , aby strážila kedy dôjde "1" na RB7 a s touto
inštrukciou som to nijako nevedel vyriešiť
- Naopak BTFSC PORTB,7 stále stráži "0" na RB7. Keď tam dorazí "1", tak
sa rotácia urýchli o jednu inštrukciu, a potom sa ešte raz zopakuje.
- tým sa vykompenzuje chvíľkové "odcestovanie jednotky" z RB7 do STATUS, C
- v simulátore je síce jeden krok navyše, ale počet inštrukcií a ms sú
presne rovnaké ako pri každom inom prechode, takže OK
dík

Uživatelský avatar
abcdef
Příspěvky: 134
Registrován: 01 bře 2007, 01:00

Absolute or Relocatable ?

#14 Příspěvek od abcdef »

ešte Vás prosím o toto:
Keď načítam do MPLAB nejaký .asm súbor a potom príkážem príkazom "make (F10)" preložiť do .hex, tak mi vyskočí otázka viď obrázok.
Autor v ktoromsi čísle káže dávať "absolute" ale ja by som chcel vedieť čo sa touto voľbou zmení alebo ovplyvňuje.
Preložil som si to aj z angl. jazyka do nášho, ale moc som z toho nezmúdrel.
dík
Přílohy
absolute or relocatable.JPG
(18.26 KiB) Staženo 123 x

Uživatelský avatar
abcdef
Příspěvky: 134
Registrován: 01 bře 2007, 01:00

toto sa mi nedarí odskúšať v simuláci

#15 Příspěvek od abcdef »

dobrý deň. Teraz som na dieli 27 (PE3/2010). Skúšam tento program. Je to len o blikaní LED na PORTe B katodou proti zemi na vývode RB0.
Program je takýto:

title "Projekt 3: Blikajuce svetlo podruhé"
LIST P=16F88
#INCLUDE <P16F88.INC>
;----------------------------------------------------
;NASTAVENIE KONFIG. SLOVA
;------------------------------------
__CONFIG _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_ON & _PWRTE_ON & _WDT_ON & _INTRC_IO
__CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF
;----------------------------------------------------
;VLASTNY PROGRAM
;-------------------------------------------------
BSF STATUS, RP0
CLRF TRISB
BCF STATUS, RP0
LOOP
SLEEP
INCF PORTB, f
GOTO LOOP

END


Problém mám v tom, že mi toto nechce fungovať v simulátore, hoci na kontaktnom poli mi to bliká pekne (cca 2,5s svit, a cca 2,5s tma).
Prečo sa mi v simulátore na PORTeB nič nemení ?(okno Watch)
A pritom mám v "Stopwatch" nastavené 31,25kHz a v okienku "stopwatch" som čakal aj 30s, a na PorteB nič !
Ako mám prosím Vás nastaviť simulátor, aby sa to chovalo v reálnom čase, ako pri zapojení na stolíku ?
Myslím tým hlavne PORTB v okne Watch
dík.
Přílohy
neuspesna simulacia na RB0.JPG
(202.85 KiB) Staženo 149 x

Odpovědět

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