 |

|
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 09 07, 12:32. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mikrovaldikliai » Problemos su I2C
|
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
|
|
|
 |
 |
 |
Problemos su I2C |
Parašytas: 2006 09 13, 10:54 |
|
|
|
Pastaruoju metu turiu problemų su ATmega8 ir jo I2C interfeisu.
Yra padarytas hardwarinis I2C valdymas:
Kodas: |
unsigned char DspWriteInt(unsigned int adress, unsigned int data){
unsigned char i;
repeatAll:
i++;
if(i > 100) return false;
i2cConf = i2cIntFlag | i2cStart | i2cEn;
//LED=1;
->> while (!(i2cConf & i2cIntFlag));
LED=1;
while(1);
if ((i2cStatus & 0xF8) != i2cStatusStart) goto repeatAll;
i2c = DspAdr;
i2cConf = i2cIntFlag | i2cEn;
while (!(i2cConf & i2cIntFlag));
if ((i2cStatus & 0xF8) != i2cStatusSlaveACK) goto repeatAll;
i2c = RetLowHightByteFromInt(adress,HightByte);
i2cConf = i2cIntFlag | i2cEn;
while (!(i2cConf & i2cIntFlag));
if ((i2cStatus & 0xF8) != i2cStatusDataACK) goto repeatAll;
i2c = RetLowHightByteFromInt(adress,LowByte);
i2cConf = i2cIntFlag | i2cEn;
while (!(i2cConf & i2cIntFlag));
if ((i2cStatus & 0xF8) != i2cStatusDataACK) goto repeatAll;
i2c = RetLowHightByteFromInt(data,HightByte);
i2cConf = i2cIntFlag | i2cEn;
while (!(i2cConf & i2cIntFlag));
if ((i2cStatus & 0xF8) != i2cStatusDataACK) goto repeatAll;
i2c = RetLowHightByteFromInt(data,LowByte);
i2cConf = i2cIntFlag | i2cEn;
while (!(i2cConf & i2cIntFlag));
if ((i2cStatus & 0xF8) != i2cStatusDataACK) goto repeatAll;
i2cConf = i2cIntFlag | i2cEn | i2cStop;
return true;
} |
Anksčiau tas kodas veikė tobulai ir (lygir) be niekur nieko ėmė tiesiog nebeveikti. Kode pažymėjau vietą, kurioje kontroleris pasikabina (while ..).
Kodo esmė tokia: eneiblinamas i2c, nuresetinamas interrupto flagas (kontroleris veikia be interruptų) ir siunčiama START komanda. Tas pažymėtasis while() ciklas laukia, kol vėl užsidegs interrupto vėliava, t.y. startas bus išsiųstas. Deja to taip ir nesulaukia.
Gal kam teko su tuo susidurti, kokios gali būti to priežastys?
Prie atmegos i2c kojų visiškai niekas nepajungta. |
|
|
|
|
 |
 |
Re: Problemos su I2C |
Parašytas: 2006 09 13, 11:31 |
|
|
|
BLASTER rašo: |
LED=1;
while(1); |
O prie kokios sąlygos ši vieta turėtų praeiti? |
|
|
|
|
 |
Problemos su I2C |
Parašytas: 2006 09 13, 15:30 |
|
|
|
nu speju turetu ji nutraukt pertraukimas
ale kadangi jie isjungti ... |
|
|
|
|
 |
Re: Problemos su I2C |
Parašytas: 2006 09 13, 21:51 |
|
|
|
vakaras rašo: |
BLASTER rašo: |
LED=1;
while(1); |
O prie kokios sąlygos ši vieta turėtų praeiti? |
Na čia tas kodas buvo debuginamas, tai įmečiau while, kad ties ten pasikabintų. Kaip matot ten dar apkabinėta LED = 1; ... Esmė tame, kad pasikabina ties while (!(i2cConf & i2cIntFlag));
Čia kodas grynai pagal atmegos datašytą (ten pateiktas C pavyzdys). |
|
|
|
|
 |
Problemos su I2C |
Parašytas: 2006 10 04, 12:37 |
|
|
|
Man sitas kodas irgi pasikabina butent toj pacioj vietoj..... |
|
_________________ I GAVE UP DRINKING, SMOKING AND SEX!
it was the worse 15 minutes of my life! |
|
|
|
 |
Problemos su I2C |
Parašytas: 2006 10 04, 15:34 |
|
|
|
Ramiai, tas kodas geras. Ten tas while(1) buvo debuginimui.
Pasirodo, kad šis kodas neveikė dėl blogo hardwaro (nebuvo pullup). Galit jį naudoti į sveikatą. |
|
|
|
|
|
 |
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 |
 |
VAT calculator
VAT number check,
What is VAT,
How much is VAT |
 |
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 |
 |
Fun football drills
Football Training Equipment,
Defending drills football,
Kids football training kit |
|

|
 |