Elektronika.lt
 2025 m. balandžio 28 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 04 28, 01:55. Visos datos yra GMT + 2 valandos.
 Forumas » Mikrovaldikliai » I2C laiko diagrama
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ą 
 I2C laiko diagrama
PranešimasParašytas: 2013 08 13, 13:01 Pranešti apie taisyklių pažeidimą Atsakyti su citata
pcwortex
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Gal kas nors galit padėti man išsiaiškinti I2C protokolo laiko diagrama. Vat, pateiksiu LM75 mikroschemos I2C laiko diagrama.


tai "start by master" aš valdiklyje vykdau tokią paprogramę
Kodas:
i2c_start(0x91); //0x91=10010001;

Tada Ack by LM75 ką čia man reikia daryti? tuo pačiu paklausiu ACK by master?

Pas manes tokios paprogramės yra

Kodas:
i2c_start(unsigned char address);
i2c_stop(void);

i2c_write( unsigned char data );
i2c_readAck(void);
i2c_readNak(void);

_________________
Diplomas tik etikete ant konservų dėžutes. O kas slepiasi dėžutėje neaišku.
 I2C laiko diagrama
PranešimasParašytas: 2013 08 13, 13:21 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Socrates
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Darai start su adresu, po to darai read su Ack, o antrą baitą darai read su Nak. Turėsi du baitus, iš kurių pirmąjį perstumsi per 8 bitus ir sudėjęs gausi 16 bitų reikšmę.
 I2C laiko diagrama
PranešimasParašytas: 2013 08 13, 13:34 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Kodas:

float readLM75(char addr){
  i2c_start(0x91 | (addr & 0x07)<<1);
int temp = i2c_readAck()<<8;
  temp |= i2c_readNak();
  i2c_stop();
  if(temp & 0x100) temp |= 0xFF00);
  return temp/2;
}

jei ka, temp/2 keisk i temp*0.5


Paskutinį kartą redagavo AlgisL, 2013 08 13, 16:06. Redaguota 1 kartą
 I2C laiko diagrama
PranešimasParašytas: 2013 08 13, 16:02 Pranešti apie taisyklių pažeidimą Atsakyti su citata
pcwortex
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Ačiū, už paaiškinimą. Šį vakarą pabandysiu ant bandymu lentos pažaisti Smile

_________________
Diplomas tik etikete ant konservų dėžutes. O kas slepiasi dėžutėje neaišku.
 I2C laiko diagrama
PranešimasParašytas: 2013 08 14, 09:55 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Socrates
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
AlgisL rašo:
Kodas:

float readLM75(char addr){
  i2c_start(0x91 | (addr & 0x07)<<1);
int temp = i2c_readAck()<<8;
  temp |= i2c_readNak();
  i2c_stop();
  if(temp & 0x100) temp |= 0xFF00);
  return temp/2;
}

jei ka, temp/2 keisk i temp*0.5


O dar geriau stumt į dešinę, kad net ir pats tūpiausias kompiliatorius padarytų tvarkingai Smile
 I2C laiko diagrama
PranešimasParašytas: 2013 08 14, 10:17 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
pazejau kita datacheeta, pilnesni, taigis rezultata grazina LEFT JUSTIFIED tad tikrai tinka poslinkis, kaip minejo socrates
jei rezultata grazintu RIGHT JUSTIFIED, reiktu kaip rasiau anksciau
Kodas:

float readLM75(char addr){
  i2c_start(0x91 | (addr & 0x07)<<1);
int temp = i2c_readAck()<<8;
  temp |= i2c_readNak();
  i2c_stop();
  return (temp>>7)*0.5;
}


Paskutinį kartą redagavo AlgisL, 2013 08 14, 17:46. Redaguota 2 kartus(ų)
 I2C laiko diagrama
PranešimasParašytas: 2013 08 14, 13:41 Pranešti apie taisyklių pažeidimą Atsakyti su citata
pcwortex
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
na truputi susidūriau su sunkumais. Nuskaitau reikšmes, kaip ir sakėte. Tačiau pagal mane turėtu iš diagramų nuskaityti 8 bitus, bes man nuskaito 9 bitus. Todėl gaunasi, vat toks nesusipratimas


ir galutiniam variante gaunasi tūkstantines temperatūros Sad

Iš valdikliaus per nuoseklu kanalą per ft232 siunčiu duomenis į kompą dvi tokias paprogrames

Kodas:
void USART_putstring(char *StringPtr)
{
 
while(*StringPtr != 0x00)
{   
 USART_send(*StringPtr);   
 StringPtr++;
 }       
 USART_send(' ');
}

void USART_send( unsigned char data){
 
while(!( UCSRA & (1<<UDRE)) );
 UDR = data;
 }


Gal jos man knisą protą, bet ankščiau visą laiką naudojau jas kitiems reikalams ir neturėjau problemų.

_________________
Diplomas tik etikete ant konservų dėžutes. O kas slepiasi dėžutėje neaišku.
 I2C laiko diagrama
PranešimasParašytas: 2013 08 16, 00:17 Pranešti apie taisyklių pažeidimą Atsakyti su citata
pcwortex
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
ar niekas negali atsakyti, kodėl yra parsiunčiama devyni bitai vietoje aštuonių bitų?

_________________
Diplomas tik etikete ant konservų dėžutes. O kas slepiasi dėžutėje neaišku.
 I2C laiko diagrama
PranešimasParašytas: 2013 08 16, 00:58 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
pcwortex rašo:
ar niekas negali atsakyti, kodėl yra parsiunčiama devyni bitai vietoje aštuonių bitų?
koks kodas tuos bitus spausdina ?
 I2C laiko diagrama
PranešimasParašytas: 2013 08 16, 01:31 Pranešti apie taisyklių pažeidimą Atsakyti su citata
pcwortex
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
AlgisL rašo:
pcwortex rašo:
ar niekas negali atsakyti, kodėl yra parsiunčiama devyni bitai vietoje aštuonių bitų?
koks kodas tuos bitus spausdina ?


Kodas:
i2c_start(0x91);
temp1=i2c_readAck()&0xFF;
temp=i2c_readNak()&0xFF;
i2c_stop();


Kodas:
itoa(temp1,duomenys,2);
   USART_putstring(duomenys);


Kodas:
char duomenys[16];

_________________
Diplomas tik etikete ant konservų dėžutes. O kas slepiasi dėžutėje neaišku.
 I2C laiko diagrama
PranešimasParašytas: 2013 08 16, 09:01 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
sakyk ka nori, bet po &0xFF rezultatas negali buti didesnis uz 0xFF, todel "1" 9-am bite kazkaip nelogiskai gaunas. kazkur cia nesueina, nes nei uCU nei kompiliatorius IMHO neturetu taip issidergti.
be to pas tave pvz yra:
100010100<<8 | 110100000 = 1010110100000
kas isvis nesamone, man gaunasi:
0b100010100<<8 | 0b110100000 = 0b10001010110100000
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

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
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
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps
ATS Trailers
American Truck Simulator Mods, ATS Trucks, ATS Maps
Football Training Kit
Football Training Equipment, Football Skills, Football Training
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
„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
FS22 mods, Farming simulator 22 mods,
FS22 maps

fs22.com
Reklama


Reklama