 |

|
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 07 27, 21:44. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mikrovaldikliai » kiekvienos porto kojos atskirai valdymas.
|
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 |
|
 |
kiekvienos porto kojos atskirai valdymas. |
Parašytas: 2006 11 26, 20:10 |
|
|
|
hmm, prireikė suvaldyti kiekvieną porto koją atskirai t.y. nu tarkim noriu, kad 1 paduotų į PORTA1 koją, sutrumpintai būtų PA1, kažkaip ten yra, bet tiksliai neatsimenu, kaip. kaip tai reiktų padaryt? tai tarkim man reiktų parašyti PA1=1;, bet neveikia, o kaip tą padaryti, kad veiktų? |
|
_________________ nepamirškit, klysti žmogiška
privatas - privatiems klausimams
arch linux  |
|
|
|
 |
kiekvienos porto kojos atskirai valdymas. |
Parašytas: 2006 11 26, 20:27 |
|
|
|
ir dar pastaba, pakeitus vieną ar kitą portą, neturi pasikeisti kiti,todėl #define netinka. |
|
_________________ nepamirškit, klysti žmogiška
privatas - privatiems klausimams
arch linux  |
|
|
|
 |
kiekvienos porto kojos atskirai valdymas. |
Parašytas: 2006 11 26, 21:05 |
|
|
|
hmm, šitoks neveikia, (kompiliuoju su winAVR), sako:
Kodas: |
../rysys.c:10: error: syntax error before numeric constant |
|
|
_________________ nepamirškit, klysti žmogiška
privatas - privatiems klausimams
arch linux  |
|
|
|
 |
kiekvienos porto kojos atskirai valdymas. |
Parašytas: 2006 11 26, 21:09 |
|
|
|
PORTB |= (1<<PB1);
PORTB |= (0<<PB4);
ir pan.
Man atrodo  |
|
_________________ Teorija - kai viską žinai, bet niekas neveikia,
Praktika - kai viskas veikia, bet nežinai kodėl.
Skype : VytautasRX |
|
|
|
 |
 |
 |
kiekvienos porto kojos atskirai valdymas. |
Parašytas: 2006 11 27, 00:23 |
|
|
|
#define siuo atveju puikiai tinka ir labai naudinga.
deja sitas principas leidzia tik ijungti porto kojas isjungti ju sitaip nepavyks
PORTB |= (1<<PB1);
kad isjungti reikia
PORTB &= ~(1<<PB1);
(gali buti kad klystu del izrasymo)
va ka siulo
Kodas: |
This tutorial demonstrates how to configure and use general purpose I/O pins. The LED lights while the push button is pressed.
Compact C techniques are used to manipulate individual bits of a Peripheral Control Register. It is good programming practice to encapsulate these extensively used (and error prone) pieces of code in macros, as has been demonstrated in the firmware framework:
PORT_LED_O &= ~(1<<BIT_LED_O); // Clear PB6
should rather be replaced with a call to the following macro (defined in "hardware.h"):
#define LED_OFF() BIT_SET_LO(PORT_LED_O,BIT_LED_O)
which uses the following macro (defined in "global.h"):
#define BIT_SET_LO(Port,Bit) {Port &= ~(1<<Bit);} |
|
|
|
|
|
 |
 |
kiekvienos porto kojos atskirai valdymas. |
Parašytas: 2006 11 27, 15:47 |
|
|
|
visdėlto, kaip minėjo Vytautasr, tas būdas netinka, nes jis nunulina kitas kojas, t.y. tarkim pas mane yra išduodamas 10101010, padarau, kad užsidegtų 4 koja, ir gaunasi 0001000, kiti vienatai išnyksta... O išjungimas veikia. ta prasme PORTB |=(0<<PB1); vekia. O digix`o duotą pavyzdį tuoj išsinagrinėsiu, tiesiog dar nežiūrinėjau rimtai... |
|
_________________ nepamirškit, klysti žmogiška
privatas - privatiems klausimams
arch linux  |
|
|
|
 |
kiekvienos porto kojos atskirai valdymas. |
Parašytas: 2006 11 27, 15:53 |
|
|
|
hmm, pas mane nėra tokio headerio: hardware.h... kokia čia biblioteka naudojama? |
|
_________________ nepamirškit, klysti žmogiška
privatas - privatiems klausimams
arch linux  |
|
|
|
 |
kiekvienos porto kojos atskirai valdymas. |
Parašytas: 2006 11 27, 15:59 |
|
|
|
surpatau, ką siūlo digix, dabar tik patikrinimą padarysiu. |
|
_________________ nepamirškit, klysti žmogiška
privatas - privatiems klausimams
arch linux  |
|
|
|
 |
kiekvienos porto kojos atskirai valdymas. |
Parašytas: 2006 11 27, 16:01 |
|
|
|
viskas veikia, ačiū. Jei kam prireiks, štai:
Kodas: |
#define ijunk(Port,Bit) {Port &= ~(1<<Bit);}
#define isjunk(Port,Bit) {Port|=(1<<Bit);} //štas dar prieš main`ą
int main (void);
{
ijunk(PORTA, PA0);
isjunk(PORTA, PA0); //taip junginėjami portai
}
|
pasikeitė tik išjungimas... |
|
Paskutinį kartą redagavo JAULER, 2006 11 27, 16:16. Redaguota 2 kartus(ų) _________________ nepamirškit, klysti žmogiška
privatas - privatiems klausimams
arch linux  |
|
|
|
 |
 |
Re: kiekvienos porto kojos atskirai valdymas. |
Parašytas: 2006 11 27, 16:10 |
|
|
|
JAULER rašo: |
... nu tarkim noriu, kad 1 paduotų į PORTA1 koją, sutrumpintai būtų PA1, kažkaip ten yra, bet tiksliai neatsimenu, kaip.... |
Na as siame reikale "tupas" kaip... , bet naudoju :
PORTA=a;
kur a = 4, arba =8, arba 16 ir t.t., kitaip sakant koda bin, kuri galima surasyti prie mikrokontrolerio koju ir gauti pvz.: 000100 (tipo trecia koja aktyvuoti) verti i dec ir gauni kazkoki skaiciu, musu atveju 4. Ir jeigu irasai PORTA=4; - tai treciam A porto isetime atsiranda log1.
 |
|
|
|
|
 |
 |
kiekvienos porto kojos atskirai valdymas. |
Parašytas: 2006 11 27, 16:13 |
|
|
|
Citata: |
Na as siame reikale "tupas" kaip... , bet naudoju :
PORTA=a;
kur a = 4, arba =8, arba 16 ir t.t., kitaip sakant koda bin, kuri galima surasyti prie mikrokontrolerio koju ir gauti pvz.: 000100 (tipo trecia koja aktyvuoti) verti i dec ir gauni kazkoki skaiciu, musu atveju 4. Ir jeigu irasai PORTA=4; - tai treciam A porto isetime atsiranda log1. |
esmė, ta, kad man reikia pakeisti tik vieną koją, tarkim PB0 jei aš parašysiu PORTB=1; tai tada portas bus vienas, ir suvaldysiu visas 8 kojas, t.y. jei kitose kojose kur nors buvo vienetai, tai jie nusimuš, ir pasidarys 0, o man reikia, kad liktų.  |
|
_________________ nepamirškit, klysti žmogiška
privatas - privatiems klausimams
arch linux  |
|
|
|
|
 |
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 |
 |
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 |
|

|
 |