 |

|
|
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 11 23, 17:22. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mikrovaldikliai » Loginis operatorius ^, ar vis tik ne?
|
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
|
|
|
 |
 |
Loginis operatorius ^, ar vis tik ne? |
Parašytas: 2014 08 19, 13:41 |
|
|
|
|
Sveiki,
Nagrinėjuos kitaicu lcd ekranelio koda. Ir jau iškart kilo neaiškumas, kokiu budu nustato bita baite, pvz. kodo dalis
| Kodas: |
sbit bit7=bitdata^7;
sbit bit6=bitdata^6;
sbit bit5=bitdata^5;
sbit bit4=bitdata^4;
sbit bit3=bitdata^3;
sbit bit2=bitdata^2;
sbit bit1=bitdata^1;
sbit bit0=bitdata^0; |
Simbolis ^ logikoje yra XOR, tai kaip nustato šitam kode konkretu bitą, nes 2 dvejetainis butu 11, tai kaip ir 0 ir 1 bitai apsiverstu po xor. Ar cia kazko as visai nesupratu, nes ne avr kompiliatoriui sitas skirtas?
Va tas lcd: http://www.ebay.com/itm/251494743565?_trksid=p2059210.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT
Bet tas source kodo linkas neveikia, tai idedu cia: http://1drv.ms/VCszFv[/url] |
|
|
|
|
|
 |
 |
Loginis operatorius ^, ar vis tik ne? |
Parašytas: 2014 08 19, 14:16 |
|
|
|
|
Tai tikriausiai kompiliatoriaus (šiuo atveju Keil) specifika.
Panašu, kad kode direktyva sbit naudojama bito primapinimui kintamajam, vengiant bitinių operacijų kode.
Kodas nuo c failo pradžios (ne visas):
| Kodas: |
#include<reg51.h>
#include<absacc.h>
#include<intrins.h>
#include<string.h>
#define uchar unsigned char
#define uint unsigned int
sbit cs =P3^5;
sbit rs =P2^3;
sbit sda =P2^2;
sbit scl =P2^1;
sbit reset =P3^4;
uchar bdata bitdata;
sbit bit7=bitdata^7;
sbit bit6=bitdata^6;
sbit bit5=bitdata^5;
sbit bit4=bitdata^4;
sbit bit3=bitdata^3;
sbit bit2=bitdata^2;
sbit bit1=bitdata^1;
sbit bit0=bitdata^0;
void LCD_CtrlWrite_IC(uchar c)
{
bitdata=c;
cs=0;
rs=0;
sda=bit7;scl=0;scl=1;
sda=bit6;scl=0;scl=1;
sda=bit5;scl=0;scl=1;
sda=bit4;scl=0;scl=1;
sda=bit3;scl=0;scl=1;
sda=bit2;scl=0;scl=1;
sda=bit1;scl=0;scl=1;
sda=bit0;scl=0;scl=1;
cs=1;
}
..........
|
|
|
|
|
|
|
 |
 |
Loginis operatorius ^, ar vis tik ne? |
Parašytas: 2014 08 19, 14:40 |
|
|
|
|
Aha, supratau dabar. Radau dar keil dokumentacijoje
| Kodas: |
| sbit name = sfr-name ^ bit-position; |
Reiks bandyt persirasyti su loginiu siftu << |
|
|
|
|
|
|
 |
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 |
|

|
 |