 |

|
|
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:33. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mikrovaldikliai » kaip i C kompiliatoriaus programa ideti asmblerio gabala?
|
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 |
|
 |
 |
kaip i C kompiliatoriaus programa ideti asmblerio gabala? |
Parašytas: 2010 07 17, 16:38 |
|
|
|
|
| dariusmano rašo: |
neisivaizduoju kaip ta funkcija atrodo.... ji yra standartine kompiliatoriaus (ne mano)
"mPORTERead()" sunaudoja 5Cycles (62,5ns) (ant senu PIC uztekdavo 3Cycles)
"mPORTBClearBits (BIT_5)" sunaudoja 3Cycles (37,5ns) (ant senu PIC uztekdavo 1Cycles)
"mPORTBSetBits (BIT_5)" sunaudoja 3Cycles (37,5ns) (ant senu PIC uztekdavo 1Cycles) |
tai ji vis tiek gal turėtų būti kažkur aprašyta, kaip tas readina.
nors pažiūrėjau instrukcijų setą pic32, tai šis nebemoka setint-resetint bitų kaip kad senieji pic8 todėl ir daro tą. pažiūrėk portų aprašymą, gal ten bus koks specialus registras tokiai operacijai.
ir šiaip jei nėra spec registro, tai greičiausiai ir nepavyks pagreitinti jau. |
|
|
|
|
|
 |
 |
kaip i C kompiliatoriaus programa ideti asmblerio gabala? |
Parašytas: 2010 07 17, 17:53 |
|
|
|
|
| dariusmano rašo: |
| sunkiai gaunas su tuo DMA (PIC32MX440F128H procui). gal kas gali pagelbet issiaiskint kaip naudojant DMA ieinancius duomenis sukraut i RAMa (nes sioje svetaineje nieko padoraus nematau). |
aš tik nežinau kaip tu tą clocką padarysi kad galėtum su juo sinchronizuoti portų nuskaitymą ir su DMA kelsi duomenis į atmintį.
šioje, tai kokioje?
paskaitinėk basic transfer mode. tik gali ten su size tekti sužaisti, nes reikia nuskaitinėti vis tą patį port`ą |
|
|
|
|
|
 |
 |
kaip i C kompiliatoriaus programa ideti asmblerio gabala? |
Parašytas: 2010 07 17, 19:05 |
|
|
|
|
| R2D2 rašo: |
| dariusmano rašo: |
| sunkiai gaunas su tuo DMA (PIC32MX440F128H procui). gal kas gali pagelbet issiaiskint kaip naudojant DMA ieinancius duomenis sukraut i RAMa (nes sioje svetaineje nieko padoraus nematau). |
šioje, tai kokioje?
|
http://www.elektronika.lt..............
teoriskai galvoju taip (teoriskai - kadangi dar nieko nezinau apie DMA):
kadangi procas ir pats DMA taktuojami vienu kvarcu tai turetu pavykt sinchronizuoti duomenu irasima is portu , 100% bus aisku kai issiaiskinsiu kaip veikia tas DMA.
Gal kas turit kokios info aie DMA rusu kalba PICams.... (naivuolis as teks turbut paciam knisti intike...) |
|
|
|
|
|
 |
 |
kaip i C kompiliatoriaus programa ideti asmblerio gabala? |
Parašytas: 2010 07 17, 19:12 |
|
|
|
|
| dariusmano rašo: |
http://www.elektronika.lt..............
teoriskai galvoju taip (teoriskai - kadangi dar nieko nezinau apie DMA):
kadangi procas ir pats DMA taktuojami vienu kvarcu tai turetu pavykt sinchronizuoti duomenu irasima is portu , 100% bus aisku kai issiaiskinsiu kaip veikia tas DMA.
Gal kas turit kokios info aie DMA rusu kalba PICams.... (naivuolis as teks turbut paciam knisti intike...) |
nu bet tau reikia išorinio takto, ar nereikia?
dma tai paprastai veikia, jis ima duomenis iš vienos vietos ir perkelia į kitą (iš port į RAM, iš RAM į port ir tt ir pan.) be procesoriaus įsikišimo.
taip, teks pačiam ieškotis jei būtent pic.
jei bendrą teoriją apie DMA tai gal ir rastum apie kokią kompų architektūrą ar pan. |
|
|
|
|
|
 |
 |
kaip i C kompiliatoriaus programa ideti asmblerio gabala? |
Parašytas: 2011 06 22, 22:43 |
|
|
|
|
| R2D2 rašo: |
nors pažiūrėjau instrukcijų setą pic32, tai šis nebemoka setint-resetint bitų kaip kad senieji pic8 todėl ir daro tą. pažiūrėk portų aprašymą, gal ten bus koks specialus registras tokiai operacijai.
ir šiaip jei nėra spec registro, tai greičiausiai ir nepavyks pagreitinti jau. |
Galbūt apie šiuos registrus kalbate:
In addition to the TRIS, PORT, and LAT base registers, each port module is associated with a
SET, CLR and INV register which provides atomic bit manipulations and allowing faster I/O pin
operations.
Writing 0x0001 to TRISASET register sets only bit 0 in base register TRISA
Writing 0x0020 to PORTDCLR register clears only bit 5 in base register PORTD
Writing 0x9000 to LATCINV register inverts only bits 15 and 12 in the base register LATC. |
|
|
|
|
|
|
 |
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 |
|

|
 |