 |

|
|
Elektronika.lt portalo forumas
Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo.
Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.
Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius,
kurie nesilaiko forumo taisyklių.
Pastebėjus nusižengimus, prašome pranešti.
Dabar yra 2025 12 24, 01:34. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mikrovaldikliai » Nestabilus PIC mikrovaldiklio veikimas
|
Jūs negalite rašyti naujų pranešimų į šį forumą Jūs negalite atsakinėti į pranešimus šiame forume Jūs negalite redaguoti savo pranešimų šiame forume Jūs negalite ištrinti savo pranešimų šiame forume Jūs negalite dalyvauti apklausose šiame forume
|
|
|
Puslapis 2 iš 2 Pereiti prie Atgal 1, 2 |
|
 |
Nestabilus PIC mikrovaldiklio veikimas |
Parašytas: 2010 12 26, 19:35 |
|
|
|
|
| Žodžiu kažkas negerai ne su programa, sumodeliavau su Proteus mikrovaldiklius PIC16F84A ir PIC16F887 su ta pačia aukščiau mano pateikta programa, pasirodo su PIC16F84A ir mirksi 2,5Hz dažniu, kaip ir turėtų, tačiau nesuprantu kodėl su PIC16F887 mirksi keturis kartus greičiau, tai yra 10Hz dažniu. Įtariu, kad mikrovaldiklis kažkaip gal naudoja vidinį default generatorių, bet nesuprantu kodėl. |
|
|
|
|
|
 |
Nestabilus PIC mikrovaldiklio veikimas |
Parašytas: 2010 12 27, 09:33 |
|
|
|
|
| vitukas1 rašo: |
| Man nepatinka užlaikymo trukmė - 12X13=156uS. Kažkaip su 2,5Hz nelabai "sueina". |
Va čia man įdomu. Tarkim, bus 2,6 Hz, bet 4000000 neišsidalina iš 2,6. Ar neturėtu kampiliatorius rodyti klaidos? Ir ką veikia ta liekana programoje?
Mažai dar programinu (su ASM, bandau perprasti C), būčiau dėkingas, jei kas paaiškintu. |
|
|
|
|
|
 |
Nestabilus PIC mikrovaldiklio veikimas |
Parašytas: 2010 12 27, 10:09 |
|
|
|
|
Viskas teisingai apskaičiuota.
Vienas komandinis ciklas tokiu dažniu trunka 1mks. Vadinasi
0,000001 x 256 x 256 x 4 = 0,262144s. Paskutinis daugiklis lygus 4 - tai pačios komandos "decfsz" ir "goto".
Šiaip tokius užlaikymus mažai kas naudoja. Geriau su aparatiniu taimeriu daryti užlaikymus. |
|
|
|
|
|
 |
Nestabilus PIC mikrovaldiklio veikimas |
Parašytas: 2010 12 27, 10:22 |
|
|
|
|
| Atsimenu, kad kažkas panašaus buvo su pic16f628. Labai panašus "simptomai". Išsprendžiau problemą prilitavęs 1,5k varžą prie vieno porto (ne MCLR) ir GND, nes pastebėjau kad, kai liečiu pincetų tą kojelę, pic'as resetuojasi. Kadangi reikėjo labai skubiai viską padaryt, tai neišsiaiškinau dėl ko taip atsitikdavo, bet problema buvo išspręsta. |
|
|
|
|
|
 |
Nestabilus PIC mikrovaldiklio veikimas |
Parašytas: 2010 12 27, 10:31 |
|
|
|
|
Ačiū Nikor, bandysiu suvirškinti, ką parašei. Tikrai nesu bandęs kitaip, tik su aparatiniu taimeriu kiek pažaidęs, bet va ta aritmetika ir pjauna . |
|
|
|
|
|
 |
Nestabilus PIC mikrovaldiklio veikimas |
Parašytas: 2010 12 27, 10:43 |
|
|
|
|
| Turiu jau nemažai patirties dirbant su 8-bit PIC'ais. Rašau programas tik asm kalba. C žinau labai paviršutiniškai. Jei turite klausimų gal galėsiu atsakyti. |
|
|
|
|
|
 |
 |
Nestabilus PIC mikrovaldiklio veikimas |
Parašytas: 2010 12 27, 11:42 |
|
|
|
|
Programa paimta is http://varzazaliam.blogas.lt/files/2010/05/abaskys_-mikrokompiuteriai.pdf nuo 68 puslapio. Va ten kaip raso:
| Citata: |
...Iš pastarųjų aštuonių programos eilučių yra sudaromi du dvigubi
programos ciklai, kuriuos galima pavadinti vėlinimo ciklais (delay
loops). Jie yra skirti būsenų, kurių metu PORTB registre įrašyti 1 ir
0, trukmei pailginti, t. y. impulsinio signalo, generuojamo B
prievado išvaduose, dažniui sumažinti.
Duomenų atminties bendrosios paskirties registruose įjungus MV
maitinimą atsiranda iš anksto nežinomas skaičius, kurio vertę lemia
bito atminties ląstelių, t. y. trigerių pečių, asimetrija. Dėl šios
priežasties pirmojo vėlinimo ciklo įvykdymo trukmė nėra iš anksto
žinoma. Kadangi vėlinimo ciklas pasibaigia tuomet, kai registrų,
kuriuose saugojami kintamieji, turinys sumažėja iki skaičiaus 00, kitų
vėlinimo ciklų trukmė yra determinuota. Jų pradžioje, atėmus iš
skaičiaus 00 vienetą, gaunamas šešioliktainis skaičius FF (dešimtainis
255), todėl komandos decfsz Kint1,1 ir decfsz Kint2,1 visuose
vėlinimo cikluose, išskyrus pirmąjį, yra kartojamos 256 kartus.
Kiekvieno ciklo metu iš kintamojo yra atimamas vienetas, o gautas
rezultatas įkeliamas į kintamajam priskirtą duomenų atminties
registrą. Kai kintamųjų vertė tampa lygi 00, komanda decfsz liepia
peršokti vieną eilutę (eilutę su komanda goto). Kadangi vieno ciklo
metu yra vykdomos dvi komandos, iš kurių viena (goto) yra perėjimo,
tai bendra trukmė yra 3 μs x 256 = 768 μs. Kadangi naudojamas
dvigubas ciklas, tai jų bendra trukmė yra (768 μs x 256) + 768 μs =
= 197 376 μs. Kai įvykdoma peršokimo sąlyga, komandos decfsz
vykdymas pailgėja 1 μs, todėl visa vėlinimo trukmė yra 197 376 μs +
+ 256 μs = 197 632 μs ≈ 0,2 s. Visą šį laiką B prievado išvaduose
būna 1 įtampa. Tokia pat yra ir 0 trukmė, todėl generuojamo
žemo dažnio impulsinio signalo periodas, įvedus vėlinimo ciklus, yra
apie 0,4 s, t. y. jo dažnis yra apie 2,5 Hz. |
| Citata: |
| Turiu jau nemažai patirties dirbant su 8-bit PIC'ais. Rašau programas tik asm kalba. C žinau labai paviršutiniškai. Jei turite klausimų gal galėsiu atsakyti. |
Gal žinai, kaip ten mikrovaldikliuose, kurie turi ir vidinį generatorių, kuris generatorius naudojamas pagal default? ar reikia be konfigūracinio bito dar kažkaip nustatyti, kad naudotų būtent išorinį kvarcą? |
|
|
|
|
|
 |
 |
Nestabilus PIC mikrovaldiklio veikimas |
Parašytas: 2010 12 27, 12:36 |
|
|
|
|
| Kiek žinau pakanka nustatyti konfiguraciame žodyje kokį oscilatorių naudoji ir viskas. Pagal nutylėjimą, naudojamas išorinis low-power kvarcas. |
|
|
|
|
|
 |
Nestabilus PIC mikrovaldiklio veikimas |
Parašytas: 2010 12 27, 13:00 |
|
|
|
|
asm neprogramuoju, taciau pries nustatant TRIS registrus, manau reiktu nurezetinti registrus ANSEL ir ANSELH. butu kazkas pansaus:
BSF STATUS, RP1
BSF STATUS, RP0
CLRF ANSEL, 1
CLRF ANSELH, 1 |
|
|
|
|
|
 |
Nestabilus PIC mikrovaldiklio veikimas |
Parašytas: 2010 12 27, 15:02 |
|
|
|
|
Sveiki, aciu labai, bet radau kur problema. Tiesiog pritaikant programa pamirsau pakeisti bendrosios paskirties registrus, kurie turetu but Kint1 EQU 20h , Kint2 EQU 21h. Ir viskas puikiai veikia, daugiau nieko nereikejo keisti
Beje, lieciant kvarco kontaktus daznis plaukioja kaip reikiant, bet to, matyt, neisvengiama del papildomai pridedamos pirsto varzos. |
|
|
|
|
|
 |
Nestabilus PIC mikrovaldiklio veikimas |
Parašytas: 2011 01 05, 18:58 |
|
|
|
|
| Electric-Blue rašo: |
Sveiki, aciu labai, bet radau kur problema. Tiesiog pritaikant programa pamirsau pakeisti bendrosios paskirties registrus, kurie turetu but Kint1 EQU 20h , Kint2 EQU 21h. Ir viskas puikiai veikia, daugiau nieko nereikejo keisti
Beje, lieciant kvarco kontaktus daznis plaukioja kaip reikiant, bet to, matyt, neisvengiama del papildomai pridedamos pirsto varzos. |
Neblogą pamokėlę organizavai . Bet nesuprantu, kaip kampiliatorius nerodė klaidų? |
|
|
|
|
|
|
 |
Google paieška forume |
|
|
 |
Naujos temos forume |
|
 |
FS25 Tractors
Farming Simulator 25 Mods,
FS25 Maps,
FS25 Trucks |
 |
ETS2 Mods
ETS2 Trucks,
ETS2 Bus,
Euro Truck Simulator 2 Mods
|
 |
FS22 Tractors
Farming Simulator 22 Mods,
FS22 Maps,
FS25 Mods |
 |
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija |
 |
FS25 Mods
FS25 Maps,
FS25 Cheats,
FS25 Install Mods |
 |
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps |
 |
ATS Trailers
American Truck Simulator Mods,
ATS Trucks,
ATS Maps |
 |
Must have farming mods
Farming simulator modhub,
Best farming simulator mods |
|

|
 |