Elektronika.lt
 2024 m. lapkričio 29 d. Projektas | Reklama | Žinokite | Klausimai | Prisidėkite | Atsiliepimai | Kontaktai
Paieška portale
EN Facebook RSS

 Kas naujo  Katalogas  Parduotuvės  Forumas  Tinklaraščiai
 Pirmas puslapisSąrašas
 Forumas / + pokalbiai
 - Paieška forume
 - D.U.K. / Forumo taisyklės
 - Narių sąrašas
 - Registruotis
 - Prisijungti

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 11 29, 11:23. Visos datos yra GMT + 2 valandos.
 Forumas » Mikrovaldikliai » AVR šokimas - PC + k
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 11
Pradėti naują temą  Atsakyti į pranešimą Rodyti ankstesnį pranešimą :: Rodyti kitą pranešimą 
 AVR šokimas - PC + k
PranešimasParašytas: 2007 09 27, 22:58 Pranešti apie taisyklių pažeidimą Atsakyti su citata
circuit
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką Apsilankyti vartotojo tinklapyje
Žodžiu, reikia su AVR kažkokiu būdu peršokti tam tikrą instrukcijų skaičių, kuris yra nežinomas (kintamasis). Tokią funkciją atlieka RJMP, bet ji dirba tik tiesiai iš FLASH, t.y. šuolis turi būti determinuotas iš anksto.
Kaip tai padaryti? Rašau assembleriu.
 AVR šokimas - PC + k
PranešimasParašytas: 2007 09 28, 00:09 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
nu visuose RISC PC registras turetu buti lygiavertis kitiems nors gal avr tas ir nedirbs, nes jis nera pilnai RISC

siap tai as C kalba panasu dalyka naudoju vietoje switch-case nes tada visur gaunamas vienodas uzdelsimas kitaip nei ta pati darant nuosekliai.

tada dar galima naudoti IJMP prisumuoti prie PC tiesiogiai nepavyks, bet galima ta padaryti per 2-3 komandas.
atrodo daroma sitaip is C kalbos toks dalykas kompiliuojasi taip

gana nemazai sudeda tu komandu, reikes bandyti asambleriu optimizuoti

(*pp[state][phase])();
RCALL __SAVELOCR2
; phase -> Y+3
; state -> Y+2
; H -> R16
; L -> R17
LDD R30,Y+2
LDI R26,LOW(6)
RCALL __MULB12U
SUBI R30,-LOW(_pp)
MOV R26,R30
LDD R30,Y+3
LSL R30
ADD R26,R30
LD R30,X+
LD R31,X+
ICALL arba IJMP
 AVR šokimas - PC + k
PranešimasParašytas: 2007 09 28, 08:33 Pranešti apie taisyklių pažeidimą Atsakyti su citata
oni
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
// reg5 - registre turime kažkokį skaičių SK, nuo kurio priklausys
// programos veikimas:

mov r16, reg5
clr r17
ldi ZL, low(case_table)
ldi ZH, high(case_table)
add ZL, r16 // <----- Štai ta vieta.
adc ZH, r17
icall
reti
case_table:
rjmp SK_is_1
rjmp SK_is_2
rjmp SK_is_3
rjmp SK_is_4
rjmp SK_is_5
rjmp SK_is_6
rjmp SK_is_7
rjmp SK_is_8
.............// ir t.t. tiek, kiek reikia skaičių
SK_is_1: nop
SK_is_2: nop // Smile
.......
Mano relių bloke panaudotas šitas kodas, veikia senai ir gerai.
 AVR šokimas - PC + k
PranešimasParašytas: 2007 09 28, 11:13 Pranešti apie taisyklių pažeidimą Atsakyti su citata
circuit
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką Apsilankyti vartotojo tinklapyje
oni rašo:
// reg5 - registre turime kažkokį skaičių SK, nuo kurio priklausys
// programos veikimas:

mov r16, reg5
clr r17
ldi ZL, low(case_table)
ldi ZH, high(case_table)
add ZL, r16 // <----- Štai ta vieta.
adc ZH, r17
icall
reti
case_table:
rjmp SK_is_1
rjmp SK_is_2
rjmp SK_is_3
rjmp SK_is_4
rjmp SK_is_5
rjmp SK_is_6
rjmp SK_is_7
rjmp SK_is_8
.............// ir t.t. tiek, kiek reikia skaičių
SK_is_1: nop
SK_is_2: nop // Smile
.......
Mano relių bloke panaudotas šitas kodas, veikia senai ir gerai.

Ačiū, kodas tikrai geras. Dabar prisiminiau, kad net kažkada kažką tokio naudojau.
Tik mažytė bėda: programa skirta ATtiny15, kuris neturi ICALL ir IJMP... Tai, spėju, nieko nebus? Sad
 AVR šokimas - PC + k
PranešimasParašytas: 2007 09 28, 12:50 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
jei nera Icall gali i steka padeti adresa ir daryti reti
 AVR šokimas - PC + k
PranešimasParašytas: 2007 09 28, 14:38 Pranešti apie taisyklių pažeidimą Atsakyti su citata
circuit
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką Apsilankyti vartotojo tinklapyje
Aha, tik bėda, kad nematau priėjimo prie stacko.. Kituose mikrovaldikliuose yra tam viešas registras.
 AVR šokimas - PC + k
PranešimasParašytas: 2007 09 28, 15:25 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
atmegoje toks priejimas yra nes stekas laikomas bendroje atmintyje, ir C kalboje ten dedami kintamieji.

dabar paziurejau kad attiny15 tikrai teturi hardwarini steka
 Re: AVR šokimas - PC + k
PranešimasParašytas: 2007 10 20, 17:20 Pranešti apie taisyklių pažeidimą Atsakyti su citata
R2D2
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
circuit rašo:
Žodžiu, reikia su AVR kažkokiu būdu peršokti tam tikrą instrukcijų skaičių, kuris yra nežinomas (kintamasis). Tokią funkciją atlieka RJMP, bet ji dirba tik tiesiai iš FLASH, t.y. šuolis turi būti determinuotas iš anksto.
Kaip tai padaryti? Rašau assembleriu.


su tuo tiny15 galima daryti taip

cpi kintamasis, skaicius1
breq vieta_kur_sokti1
cpi kintamas, skaicius2
breq vieta_kur_sokti2
...

nors greičiausiai autorius rado gal ir kitą būdą Smile
 AVR šokimas - PC + k
PranešimasParašytas: 2007 10 20, 18:24 Pranešti apie taisyklių pažeidimą Atsakyti su citata
circuit
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką Apsilankyti vartotojo tinklapyje
Bėda, kad neprirašysiu 200 eilučių šimtui situacijų.
Išsiverčiau truputėlį kitaip ir atsisakiau tokio šokinėjimo.
 AVR šokimas - PC + k
PranešimasParašytas: 2007 10 20, 21:43 Pranešti apie taisyklių pažeidimą Atsakyti su citata
R2D2
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
circuit rašo:
Bėda, kad neprirašysiu 200 eilučių šimtui situacijų.
Išsiverčiau truputėlį kitaip ir atsisakiau tokio šokinėjimo.


gal išduosi kaip? bet manau 100 eilučių vis tiek prireikė. Rolling Eyes
 AVR šokimas - PC + k
PranešimasParašytas: 2007 10 21, 11:00 Pranešti apie taisyklių pažeidimą Atsakyti su citata
circuit
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką Apsilankyti vartotojo tinklapyje
Tiesiog iš esmės perdariau programą, kad tokios lentelės iš vis nereikėtų. Bet taip išsisukti galima buvo tik labai konkrečiu mano atveju.
Pradėti naują temą  Atsakyti į pranešimą
 
Forumo sistema: phpBB
 „Google“ paieška forume
 Kas naujesnio?
 Naujos temos forume

Global electronic components distributor – Allicdata Electronics

Electronic component supply – „Eurodis Electronics“

LOKMITA – įvairi matavimo, testavimo, analizės ir litavimo produkcija

Full feature custom PCB prototype service

GENERAL FINANCING BANKAS

Mokslo festivalis „Erdvėlaivis Žemė

LTV.LT - lietuviškų tinklalapių vitrina

„Konstanta 42“

Technologijos.lt

Buitinė technika ir elektronika internetu žemos kainos – Zuza.lt

www.esaugumas.lt – apsaugok savo kompiuterį!

PriedaiMobiliems.lt – telefonų priedai ir aksesuarai

Draugiškas internetas

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
VAT calculator
VAT number check, What is VAT, How much is VAT
LEGO
Mänguköök, mudelautod, nukuvanker
Thermal monocular
Thermal vision camera,
Night vision ar scope,
Night vision spotting scope
FS25 Mods
FS25 Harvesters, FS25 Tractors Mods, FS25 Maps Mods
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija
FS25 Mods
FS25 Maps, FS25 Cheats, FS25 Install Mods
GTA 6 Weapons
GTA 6 Characters, GTA 6 Map, GTA 6 Vehicles
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps
Reklama
‡ 1999– © Elektronika.lt | Autoriaus teisės | Privatumo politika | Atsakomybės ribojimas | Turinys | Reklama | Kontaktai LTV.LT - lietuviškų tinklalapių vitrina
Script hook v, Openiv, Menyoo
gta5mod.net
FS25 Mods, FS25 Tractors, FS25 Maps
fs25mods.lt
Optical filters, UV optics, electro optical crystals
www.eksmaoptics.com
Reklamos paslaugos
SEO sprendimai

www.addad.lt
Elektroninių parduotuvių optimizavimas „Google“ paieškos sistemai
www.seospiders.lt
FS22 mods, Farming simulator 22 mods,
FS22 maps

fs22.com
Reklama


Reklama