|
|
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 2024 03 28, 23:03. Visos datos yra GMT + 2 valandos.
|
|
|
|
Forumas » Mikrovaldikliai » Projektas_JTAG_Digix
|
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
|
|
|
|
Projektas_JTAG_Digix |
Parašytas: 2016 12 03, 18:26 |
|
|
|
Man, kaip senoliui, vietoj aibes iskalbiu abrakadabru labiau patinka paprasciausia protokolo oscilograma. |
|
|
|
|
|
Projektas_JTAG_Digix |
Parašytas: 2016 12 03, 19:38 |
|
|
|
Jai praktinės reikia, tai mano oscilografas per senas, kad į kompą įkeltų...
O papaišytą galiu įdėti, jei pasakysi kaip čia paveikslą prikabinti.
Kad ten viskas paprasta jei SPI žinai, tik lyg du išėjimai būtų TMS ir šiuo atveju TDI, o TCK abiem vienas...
Dar iš hiperteminalo ID prikabinsiu, jauniausias kairėje atvirkščiai...
JTAG_resetas
Dr_nuskaitymas_po_reseto
11111100000011000000001010011000
ID_kodo_nuskaitymas
100
11111100000011000000001010011000
Atmega16
TAP kontrolerių diagramų pilnas internetas...
AgisL galėtų funkciją laisvai konfiguruojamą sugalvot....
Ir SPI panaudojimą... |
|
Paskutinį kartą redagavo krienas, 2016 12 03, 20:04. Redaguota 4 kartus(ų) |
|
|
|
|
Projektas_JTAG_Digix |
Parašytas: 2016 12 03, 19:47 |
|
|
|
o kas cia neaiskaus?
TCK yra taktavimo signalas duomenu mainams
TDI duomenu ivesties(ir galbut isvesties, jai dvipuse shyna)
TMS perjungia komanda/duomenys ir t.t. |
|
|
|
|
|
Projektas_JTAG_Digix |
Parašytas: 2016 12 03, 20:53 |
|
|
|
krienas rašo: |
Jai praktinės reikia, tai mano oscilografas per senas, kad į kompą įkeltų...
O papaišytą galiu įdėti, jei pasakysi kaip čia paveikslą prikabinti. |
Piesk situo: http://wavedrom.com/editor.html
AlgisL rašo: |
o kas cia neaiskaus?
TCK yra taktavimo signalas duomenu mainams
TDI duomenu ivesties(ir galbut isvesties, jai dvipuse shyna)
TMS perjungia komanda/duomenys ir t.t. |
Paprastai dar TDO buna. Retesniais atvejais: TRST. |
|
|
|
|
|
|
Projektas_JTAG_Digix |
Parašytas: 2016 12 04, 09:21 |
|
|
|
Papildoma informacija, su Gintaras_bar pagalba paaiškėjo, kad įrašant vyriausią bitą reikia kartu su TMS signalu, kitaip įsirašys TDO kojos būseną išėjimo metu. Gerai jei sutampa su reikiama, o jei ne tai bus ne ta komanda arba duomenys. Skaitant galima išstumti visą registrą, vistiek palieki 0 arba FF. Tai reikia atkreipti dėmesį jei naudoji būsenas, kur reikalingi duomenys...
Na ir prikabinu boundary scaną, tik jauniausia skiltis po kaire...
00000000000100000000000000001001000000000000000000000000000001001000000110000000
0000000000000000001011000100000000100010000000001000000010010 |
|
|
|
|
|
|
Projektas_JTAG_Digix |
Parašytas: 2016 12 16, 16:19 |
|
|
|
Po tam tikrų lyrinių nukrypimų tenka grįžti prie šio projekto.
Visą Jtagą sudėjau į vieną funkciją, atrodo kad tai klaida...
Hardvarą palikau tupą, visa veiksmų seka teks sudėti į aplikaciją.
Iškilo klausimas ką daryti su Bondary registrais jų kiekis nemažas ir priklauso nuo procesoriaus. Pas Atmega16 141, pas STM32F407 445, pas LPC2103 virš 540...
Atmegai dar galiu atskaičiuoti koks bitukas kurios kojos, bet tai ne kas... |
|
|
|
|
|
Projektas_JTAG_Digix |
Parašytas: 2016 12 17, 15:18 |
|
|
|
Norėčiau šiek tiek ne į temą paklausti jei galima... Naudoju Micro C Pro for PIC. Gal galėtumėt paaiškinti kaip teisingai aprašyti salyga, kad MCU suprastu kad yra nuspausti du mygtukai vienu metu ir galėtu atlikti tam tikrą veiksmą, pvz
if (M1==0) {led1=1;}
if (M2==0) {led2=1;}
if (M1 kartu su M2 ==0) {led3=1;}
Dėkui iš anksto... |
|
|
|
|
|
Projektas_JTAG_Digix |
Parašytas: 2016 12 17, 17:43 |
|
|
|
Veikia, dėkui Algi.
Buvau pamiršes, kad turiu operatorių sąrašą, dabar atsispausdinau ir pasikabinau ant sienos.. |
|
Paskutinį kartą redagavo PauliusA, 2016 12 18, 16:09. Redaguota 1 kartą |
|
|
|
|
Projektas_JTAG_Digix |
Parašytas: 2016 12 17, 17:54 |
|
|
|
Beje, jei Mx butu makrosai, tai labai sveika juos apskliausti (dar geriau jau paciame makrose)... |
|
|
|
|
|
Projektas_JTAG_Digix |
Parašytas: 2016 12 18, 15:52 |
|
|
|
Biški negražu teršti autoriaus temą, bet gal krienas labai nesupyks, vistiek visa tai skirta švietimo/tobulėjimo tikslais...
Dar trumpai paklausiu ar imanoma parašyti kokią salygą kad sustabdyti/ nutraukti pvz tokios "void laikas()" paprogramės darbą kad būtų galima toliau vykdyti kitas aprašytas "void main()" funkcijas ?
void laikas (){
for (i = 15; i>0; i--){ // 15 kartu
Serial_Lcd_Chr(2, 15, ((i/10) % 10) + 4;
Serial_Lcd_Chr(2, 16, (i % 10) + 4;
Sound_Play(2000, 50);
delay_ms(1000);} //1sek
Serial_LCD_Cmd(_LCD_CLEAR);
Serial_LCD_Cmd(_LCD_CURSOR_OFF);
delay_ms(1);
}
Ar be hardwarinio timer čia jau neapseisim?
(ps ten kode kažkodėl šypsenykes automatiškai meta ten skaičius plius 48 apskliaustas turi buti) |
|
|
|
|
|
|
Projektas_JTAG_Digix |
Parašytas: 2016 12 18, 17:02 |
|
|
|
Kadangi pastaruoju metu naudoju objektinį programavimą. Stengiausi, kad nei vienoje funkcijoje arba metode nesėdėtų procesorius. Vienas iš principu, kurį naudoju: paleidimo metodas, būsenos keitimas ir įvykdymas. Paleidžiu metodą ir tada su sąlyga einu pagrindiniame cikle tikrinti metodo būsenos.
Pakeičiu būseną ir išeinu nesėdžiu metode (funkcijoje).
Laminatoriaus programą parašiau su 28 softvariniais taimeriais. Panašiai, kaip Lader.
Pačio atveju funkcija vistiek baigsis, gali naudoti globalų kintamąjį ir sąlygas if su break. Tik tai, kad globalų kintamąjį gali pakeisti pertraukimas, nes randiesi funkcijoje.
Pats baisiausias dalykas, kai naudoji while ciklą požymio laukimui iš hardvaro, jei sudėtingesnis nei pin, tai pakabinimas garantuotas.
Tai tik laikrodį išvedinėji į LCD ir daugiau nieko nespėji...
Jei tik laikrodžiui geriausia naudoti hardvarinį taimerį, ir pagal jį daug softvarinių... |
|
|
|
|
|
|
Projektas_JTAG_Digix |
Parašytas: 2016 12 18, 17:22 |
|
|
|
Aš dar kiek per žalias, gal galėtum salygos pvz su tuo globaliu kintamuoju ir break; ?
if (!M) { } break; |
|
|
|
|
|
|
Projektas_JTAG_Digix |
Parašytas: 2016 12 18, 17:24 |
|
|
|
PauliusA rašo: |
ps ten kode kažkodėl šypsenykes automatiškai meta ten skaičius plius 48 apskliaustas turi buti |
Todėl, kad kodą įterpi kaip paprastą tekstą. Jei įterptum, panaudodamas BBkodą "Code", viskas būtų gerai:
Kodas: |
Serial_Lcd_Chr(2, 15, ((i/10) % 10) + 48); |
O tai ko klausi - kad būtų vykdomos kitos programos dalys, kol tam tikroje vietoje reikia pauzės išlaukti - yra vadinama multitasking. Tokiu principu veikia pvz. realaus laiko sistemos (RTOS - Real Time Operating System). Ir ten tikrai yra naudojamas "hardvarinis" taimeris bei pertraukimai. Nežinau su kokiu mikrovaldikliu dirbti, bet apie RTOS (pvz. FreeRTOS) galima galvoti tik ARM'e. 8 bitų mikrovaldiklyje irgi veiks, bet sunaudos 99% resursų, tai jei uždavinys nesudėtingas, bus "šaudymas į muses iš patrankos".
Tačiau "multitasking" principą galima pritaikyti ir nenaudojant RTOS. 8 bitų mikrovaldiklyje labai sėkmingai galima naudoti trijų lygių paprogrames:
- pertraukimų apdorojimas - čia sudėta viskas, ką reikia vykdyti tiksliai apibrėžtu laiku pvz. LED indikacijos išvadų būsenos atnaujinimas, sisteminio laiko skaičiavimas ir t.t.
- foninės paprogramės - čia sudėtos paprogramės, kurias irgi reikia vykdyti pakankamai dažnai, bet tikslus vykdymo laikas nėra toks kritinis;
- vartotojo sąsaja, kurioje pilna laukimo pauzių, kurių metu ir yra vykdomos foninės paprogramės.
ARM mikrovaldiklyje, kur yra ir DMA, toks principas leidžia dar efektyviau išnaudoti resursus. Su STM32 esu padaręs prietaisą, kur mikrovaldiklis vienu reaguoja į mygtukų paspaudimus, nuskaito ADC, atlieka PID skaičiavimus, valdo PWM signalą, siunčia duomenis į UART ir tuo pat metu išveda duomenis į keturių skilčių LED indikatorių bei monochrominį LCD. Galima būtų ir spalvotą LCD prijungti, bet tam jau reikia specialiai adaptuotų LCD paprogramių, kad nesutriktų LED indikacijos valdymas. |
|
|
|
|
|
|
Projektas_JTAG_Digix |
Parašytas: 2016 12 18, 17:30 |
|
|
|
O kaip multiaskingas su funkcjų pointeriais?
Turi funkciją kurios argumentas yra kitos funkcijos pointeris, tai per vieną funkciją bet kokią iškviest.... |
|
|
|
|
|
|
Google paieška forume |
|
|
Naujos temos forume |
|
|
FS 22 Tractors
Farming Simulator 19 Mods,
FS 22 Maps,
FS22 Mods |
|
ETS2 Mods
ETS2 Trucks,
ETS2 Bus,
Euro Truck Simulator 2 Mods
|
|
FS22 Tractors
Farming Simulator 22 Mods,
FS22 Maps,
FS22 Trucks |
|
VAT calculator
VAT number check,
What is VAT,
How much is VAT |
|
Paskola internetu
Vartojimo paskola,
paskola automobiliui,
paskola būsto remontui |
|
Thermal monocular
Thermal vision camera,
Night vision ar scope,
Night vision spotting scope |
|
FS22 Mods
FS22 Harvesters,
FS22 Tractors Mods,
FS22 Maps Mods |
|
FS22 Mods
FS22 Maps,
FS22 Harvesters,
FS22 Tractors |
|
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija |
|
Sims 4 Mods
Sims 4 CC Clothes,
Sims 4 Hair CC,
Sims 4 Skill Cheat |
|
Optic sight
Binoculars for hunting elk,
Best compact binoculars,
Riflescope hunting |
|
|
|