 |

|
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 05 04, 04:25. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mikrovaldikliai » PAGALBOS Atmega8 C programavimas
|
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 1 iš 2 Pereiti prie 1, 2 Toliau |
|
 |
 |
PAGALBOS Atmega8 C programavimas |
Parašytas: 2008 01 12, 15:11 |
|
|
|
Sveiki, niekaip neįkertu C kodo paslapčių, gal galit padėti
Bandau suregzti kodą Atmega8, kode įdėti 3 pagrindiniai IF-ai, dviejuose iš jų yra dar po vieną ciklą su vidiniais IF-ais ir jie veikia, o 3 IF-as pagrindiniame cikle nesuveikia. Pridedu kodą:
#include <iom8.h>
int main( void )
{
DDRD = 255;
DDRC = 0;
PORTD=0;
int cikl= 1;
int cikll= 1;
while (1){
if (((PINC & (1<<PINC3))!=0)){
while(cikl){
PORTD=255;
if (((PINC & (1<<PINC2))!=0)){
cikl=0;
}
}
}
if (((PINC & (1<<PINC1))!=0)){
while(cikll){
PORTD=70;
if (((PINC & (1<<PINC2))!=0)){
cikll=0;
}
}
}
if (((PINC & (1<<PINC0))!=0)){
PORTD=2;
}
PORTD=170;
cikll=1;
cikl=1;
}
} |
|
|
|
|
 |
PAGALBOS Atmega8 C programavimas |
Parašytas: 2008 01 12, 17:33 |
|
|
|
pabandyk while(cikl = 1) gal tuomet veiks nes pns veikia ir ant php kaip while ($data = mysql_fetch_array($aaa)) veiks tol kol mysql_featch_array grazins 1 arba 0 |
|
|
|
|
 |
PAGALBOS Atmega8 C programavimas |
Parašytas: 2008 01 12, 17:57 |
|
|
|
Ačiū už patarimą, tačiau nepadeda.
Man reikia kad veiktų PINC0 tačiau neveikia.
if (((PINC & (1<<PINC0))!=0)){
PORTD=2;
}
Kiek suprantu while turėtų tikrinti visus ifus iš eilės ir jei kuris tenkina sąlygą atlieka tolimesnius nurodymus, tačiau šioje situacijoje veikia tik tik PINC1, PINC2 ir PINC3 o PINC0 ne. Turbūt kažkur maišau sintaksę arba naudoju ne tuos operatorius |
|
|
|
|
 |
PAGALBOS Atmega8 C programavimas |
Parašytas: 2008 01 12, 18:03 |
|
|
|
ka reiskia sis uzrasymas?
if (((PINC & (1<<PINC0))!=0))
kodel man uztekdavo rasyti tik tiek?
if (PINC.0!=0) |
|
|
|
|
 |
PAGALBOS Atmega8 C programavimas |
Parašytas: 2008 01 12, 18:18 |
|
|
|
Micius8 rašo: |
Error[Pe018]: expected a ")" G:\iar-kodai\main.c 28 |
cia man sakai? ant codevision reik tasko. ant IAR nereik. gal del to? |
|
|
|
|
 |
PAGALBOS Atmega8 C programavimas |
Parašytas: 2008 01 12, 18:18 |
|
|
|
Naudojant if (PINC.0!=0)
išmeta
Error[Pe018]: expected a ")" G:\iar-kodai\main.c 28
Rašau su IAR Embedded Workbench IDE
O
if (((PINC & (1<<PINC2))!=0)
kažkur pavyzdžiuose radau ir toks aprašymas veikia |
|
|
|
|
 |
PAGALBOS Atmega8 C programavimas |
Parašytas: 2008 01 12, 18:20 |
|
|
|
ACC rašo: |
Micius8 rašo: |
Error[Pe018]: expected a ")" G:\iar-kodai\main.c 28 |
cia man sakai? ant codevision reik tasko. ant IAR nereik. gal del to? |
Tuoj pabandysiu |
|
|
|
|
 |
PAGALBOS Atmega8 C programavimas |
Parašytas: 2008 01 12, 18:38 |
|
|
|
ACC rašo: |
klausiu, nes nesupratu 1<< esmes. Jau daug kartu matau, bet nesuvokiu. |
Naudojant
if (PINC.0!=0) meta klaidas
o naudojant
if (PINC0!=0) klaidų nemeta, tačiau neveikia mygtukai iš viso.
Su
if (((PINC & (1<<PINC3))!=0)) Ifas veikia bet ne tas kurio reikia  |
|
|
|
|
 |
PAGALBOS Atmega8 C programavimas |
Parašytas: 2008 01 12, 20:06 |
|
|
|
1<< x tai pastumia vieneta per x bitu
sakykime dvejetaineje sistemoje
0b0000001<< 3 tai bus lygu 0b0001000 kas atitinka skaiciu 8 desimtaineje ir sesioliktaineje
vietoje
if (PINC0!=0)
gali rasyti
if (PINC & 1) jei tikrini nulini bita arba
if (PINC & jei tikrini trecia(PC3) bita |
|
|
|
|
 |
 |
PAGALBOS Atmega8 C programavimas |
Parašytas: 2008 01 12, 20:43 |
|
|
|
Digix rašo: |
1<< x tai pastumia vieneta per x bitu
sakykime dvejetaineje sistemoje
0b0000001<< 3 tai bus lygu 0b0001000 kas atitinka skaiciu 8 desimtaineje ir sesioliktaineje
vietoje
if (PINC0!=0)
gali rasyti
if (PINC & 1) jei tikrini nulini bita arba
if (PINC & jei tikrini trecia(PC3) bita |
Jei gerai suprantu
if (PINC & 1) bus PC0
if (PINC & 2) bus PC1
if (PINC & 4) bus PC2
if (PINC & bus PC3
if (PINC & 16) bus PC4
if (PINC & 32) bus PC5
O tada
if (PINC & 3) bus PC0 ir PC 1 tikrinami vienu metu.
Ir dar vienas klausimėlis Digix (iki šiol nepagaunu minties)
exelyje bitu skaičiavimams iš dec į bit ir atvirkščiai naudojami aštuoni simboliai iš kur atsiranda 9 ir dar su 0b pradžia, tada kaip užrašomas dešimtainis 192 (kiek suprantu 11000000 ar čia skirtingi standartai ar kt.). |
|
|
|
|
 |
 |
PAGALBOS Atmega8 C programavimas |
Parašytas: 2008 01 12, 20:50 |
|
|
|
0x -sesioliktainis
0o -astuntainis
0d -desimtainis
0b - dvejetainis skaicius
gaina daugelis kompiliatoriu supranta tik 0x ir dar 0o(kuris niekam nereikalingas) bet nesupranta 0b
skairmenu skaicius neturi reiksmes.
kaip tas daroma ekselyje nezinau, nesinaudojau
beje apie tai ka kalbejom tai ne pavertimas is vienos sistemos i kita o tik konstantos uzrasymas zmoguio suprantama kalba. kompiliatorisu viska vistiek pavers i sesioliktaine. |
|
|
|
|
 |
 |
PAGALBOS Atmega8 C programavimas |
Parašytas: 2008 01 12, 20:56 |
|
|
|
Ir dar norėčiau paklausti gal kas žinote kaip apskaičiuoti 4 Mhz kvarcui laiką pagal šį kodo fragmentą. Pagal chronometrą gaunasi apie 70 sekundžių, o (mano galva) skaičiuojant kad 100*100*200*4 lygu 8 mln taktų nesurišu galų kas su kuo čia gaunasi.
pump(200);
void pauze(int laikas)
{ long i;
for (i=0; i<(laikas * 100); i++)
{};
}
void pump(int laikas)
{ long i;
for (i=0;i<laikas;i++)
{
pauze(100);
PORTD=81;
PORTB=46;
}
} |
|
|
|
|
 |
PAGALBOS Atmega8 C programavimas |
Parašytas: 2008 01 12, 21:09 |
|
|
|
nelabai supreantu problemos.
100*100*200*4 lygu 8 mln taktų
pagal ka tu sita suskaiciuoji?
kas tie 100 ir kiti skaiciai?
nuspeti kiek taktu reikes C kalboje nepavyks.
lengviausia pamatuoti, arba rasyti uzdelsimo funkcija asambleriu
beje ir kompiliatorisu turetu tureti savo bibliotekoje toki dalyka |
|
|
|
|
|
 |
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 |
 |
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 |
|

|
 |