Elektronika.lt
 2025 m. gruodžio 21 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 2025 12 21, 21:10. Visos datos yra GMT + 2 valandos.
 Forumas » Mikrovaldikliai » duomenų skaitymas su atmega16 per SPI
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ą 
 duomenų skaitymas su atmega16 per SPI
PranešimasParašytas: 2007 11 28, 15:09 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Aivaras Rutkauskas
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Sveiki, štai tokia situacija:
Aš noriu su mikrovaldikliu valdyti DAC'a. Bendravimas vyksta 16 bitų žodžiais. Pirmi 8 bitai adresas su krypties (skaitymo ar rašymo) bitu ir sekantys 8 bitai duomenys siunciami arba priimami, priklausomai kokią operaciją pasirinkau.
Pradžiai reikėtų bent nuskaityti registrą. Atmega16 sukonfiguravau kaip masterį. Pirmus 8 bitus (adresą) nesunku, bet po išsiuntimo atmega nustoja generuoti kloką ir niekas nebevyksta, o turėčiau nuskaityti 8 bitus duomenų. Tai mano klausimas: kaip priimti duomenis kai mikrovaldiklis dirba master režimu ir pats užduoda kloką? Nes aš dar galvoju, kad DAC'as laukia kloko duomenis išsiūsti ir nesulaukia.

Ir dar tokia keistenybė: aš įrašau į SPI duomenų registrą žodį ir tada jis išsiunčiamas. Žiurėjau su osciolografu tai pastebėjau, kad tą žodį jis siunčia nuolat kas 512us (tam laike zodzio siuntimas uzima tik 17us) nors aš į ciklą nieko nedėjau. Programa prabėga kartą ir sustoja. Kodėl taip vyksta?
 duomenų skaitymas su atmega16 per SPI
PranešimasParašytas: 2007 11 29, 13:09 Pranešti apie taisyklių pažeidimą Atsakyti su citata
jedas
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje
Kodel programa tavo neveikia pakomentuoti negaliu, bet tam kad nuskaitytum SPI duomenis tu turi issiusti bet kokius, tarkim 0xff ar pan. Matomai neskaitei manualo. Zodziu siusi 3 baitus: adresai, duomenys ir dummy read'as. Visa tam, kad butu sugeneruotas clock'as sleivui.

_________________
-----
That's what she said.
 duomenų skaitymas su atmega16 per SPI
PranešimasParašytas: 2007 11 29, 14:54 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Aivaras Rutkauskas
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Datasheeta atmegos beabejo skaiciau ir apie dummy baita nierko neradau arba nemokejau ieskoti Smile na bet radau seip interneto platybese Smile Dekui Jedas uz pagalba Wink dabar tikrai aisku, kad reikia daryti fiktyvu siuntima.
Bet kodel tris baitus, cia parasei tik kaip pavyzdy ar butinai taip reikia? Nes as galvojau tik du. Adresas kuriam yra nuskaitymo bitas ir iskarto dummy nuskaitymui. Ar duomenis toki divaisai atiduoda tik sekanciu zodziu?
 duomenų skaitymas su atmega16 per SPI
PranešimasParašytas: 2007 11 29, 16:12 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ą
adresas negali buti dummy baitas, nes prietaisas kol jo neperskaite nezino ka atiduoti.

siulau tiesiog rasyti ir skaityti kokius 3-5 dummy baitus, ir paskui pasiziureti kuriame is ju yra reikiamas atsakymas.
 duomenų skaitymas su atmega16 per SPI
PranešimasParašytas: 2007 11 29, 20:00 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Aivaras Rutkauskas
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Digix rašo:
adresas negali buti dummy baitas, nes prietaisas kol jo neperskaite nezino ka atiduoti.

Beabejo
Digix rašo:
siulau tiesiog rasyti ir skaityti kokius 3-5 dummy baitus, ir paskui pasiziureti kuriame is ju yra reikiamas atsakymas.

Taip ir padarysiu

O gal žinot apie antra klausimo daly?

Citata:
aš įrašau į SPI duomenų registrą baitą ir tada jis išsiunčiamas. Žiurėjau su osciolografu tai pastebėjau, kad tą baitą jis siunčia nuolat kas ~500us (Paty baitą išsiunčia per 17us) nors aš į ciklą nieko nedėjau. Programa prabėga kartą ir sustoja. Kodėl taip vyksta?

Gal po duomenu apsikeitimo būtina disabel'int SPI ?
 duomenų skaitymas su atmega16 per SPI
PranešimasParašytas: 2007 11 29, 20:08 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ą
manau nebutina, bet SPI isjugngimas nuresetins ta interfeisa, todel kai kada gali buti naudinga arba gali buti ir kenksminga.

pvz LCD man tokiu budua tsisake vekti per daznai resetinant.
 duomenų skaitymas su atmega16 per SPI
PranešimasParašytas: 2007 11 30, 08:05 Pranešti apie taisyklių pažeidimą Atsakyti su citata
jedas
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje
Jei programa labai nedidele papastink ta vieta kur "turetu" baigtis programa. Ar bent jau po issiuntimo uzdek while (1) {} jei C, jei ASM, neatsimenu, bet analogiska komanda,jumpinti i save.

_________________
-----
That's what she said.
 duomenų skaitymas su atmega16 per SPI
PranešimasParašytas: 2007 11 30, 10:49 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Aivaras Rutkauskas
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Visas progranos kodas atrodo stai taip:
.INCLUDE "m16.inc"

;********* SPI nustatymas *******************

ldi r17,0b10110000
out DDRB,r17
ldi r17,0b01011101
out SPCR,r17
sbi PORTB,4

;******* DAC aktyvavimas ********************

cbi PORTB,4
ldi r19,250
kilpa:
dec r19
brne kilpa

;********* Adreso isiuntimas *****************

ldi r16,0b10010010
out SPDR,r16
laukti:
sbis SPSR,7
rjmp laukti

;************ Dummy baitas ********************

clr r17
out SPDR,r17
lauktiiii:
sbis SPSR,7
rjmp lauktiiii

;********** Pertrauka po 16 bitu zodzio *********

sbi PORTB,4
ldi r19,50
kilpaa:
dec r19
brne kilpaa

;***** DAC aktyvavimas po pertraukos ***********

cbi PORTB,4
ldi r19,20
kilpaaa:
dec r19
brne kilpaaa

;***** Du dummy baitai 16 bitu zodzui formuoti***

out SPDR,r17
lauktii:
sbis SPSR,7
rjmp lauktii

out SPDR,r17
lauktiii:
sbis SPSR,7
rjmp lauktiii

;******* DAC neaktyvuojamas *****************

sbi PORTB,4


Paskutinį kartą redagavo Aivaras Rutkauskas, 2007 11 30, 11:00. Redaguota 1 kartą
 duomenų skaitymas su atmega16 per SPI
PranešimasParašytas: 2007 11 30, 10:53 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Aivaras Rutkauskas
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Kai pabaigoj įterpiu amžiną ciklą:

amzinas:
rjmp amzinas

tai jau išsiunčia tik viena kartą. ka tai reiškia? Kad mikrovaldiklis pats visa laiką vyksdo programą iš naujo?
 duomenų skaitymas su atmega16 per SPI
PranešimasParašytas: 2007 11 30, 11:01 Pranešti apie taisyklių pažeidimą Atsakyti su citata
jedas
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje
Pereina per visa flasa o tada turbut soka i pradzia. Niekad nepalik tokiu neterminuotu programu. Netgi jei tau reikia pakartotinai vykdyti, vykdyk tai cikle ar pan.

_________________
-----
That's what she said.
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

Sveiki ir ekologiški maisto produktai

Mokslo festivalis „Erdvėlaivis Žemė

LTV.LT - lietuviškų tinklalapių vitrina

„Konstanta 42“

„Mokslo sriuba“

www.matuok.lt - Interneto spartos matavimo sistema

Programuotojas Tautvydas – interneto svetainių-sistemų kūrimas

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
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
Reklama
‡ 1999– © Elektronika.lt | Autoriaus teisės | Privatumo politika | Atsakomybės ribojimas | Turinys | Reklama | Kontaktai LTV.LT - lietuviškų tinklalapių vitrina
Ets2 mods, Ats mods, Beamng drive mods
allmods.net
„MokslasPlius“ – mokslui skirtų svetainių portalas
www.mokslasplius.lt
Optical filters, UV optics, electro optical crystals
www.eksmaoptics.com
LTV.LT – lietuviškų tinklalapių vitrina
www.ltv.lt/technologijos/
Elektroninių parduotuvių optimizavimas „Google“ paieškos sistemai
www.seospiders.lt
Mokslo festivalis „Erdvėlaivis žemė“
www.mokslofestivalis.eu
Reklama


Reklama