Elektronika.lt
 2024 m. lapkričio 30 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 2024 11 30, 03:46. Visos datos yra GMT + 2 valandos.
 Forumas » Mikrovaldikliai » Atmega8 kodas
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ą 
 Atmega8 kodas
PranešimasParašytas: 2014 01 10, 14:31 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Karolokas
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
Sveiki. Pagal šį kodą LED turėtų užsidegt, kai mygtukas paspaustas. Tačiau ji užsidega, kai mygtukas atleistas ir užgesta, kai paspaustas. Kodėl?
Kai mygtukas paspaustas PIND & (1 << PD0) = 00000001 & 00000001 = 00000001 if sąlyga tenkinama, taigi turėtų užsidegti.
Kai mygtukas nepaspaustas PIND & (1 << PD0) = 00000000 & 00000001 = 00000000. Turėtų būti vykdoma else.

Kodas:
# include <avr/io.h>

int main(void){
   
   DDRB = 0xff;
   DDRD = 0;
   
   while(1){
   
      if (PIND & (1 << PD0))
         PORTB = 0xff;
      else
         PORTB = 0;
   }
}

http://www.part.lt/img/246b7493f09744d160475fe22c805d15253.bmp
 Re: Atmega8 kodas
PranešimasParašytas: 2014 01 10, 15:36 Pranešti apie taisyklių pažeidimą Atsakyti su citata
bachurelis
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Karolokas rašo:
Kai mygtukas paspaustas PIND & (1 << PD0) = 00000001 & 00000001 = 00000001 if sąlyga tenkinama...

Ne. kai mygtukas nuspaustas, porto iejime "0" :
PIND & (1 << PD0) = 00000000 & 00000001 = 00000000
 Atmega8 kodas
PranešimasParašytas: 2014 01 10, 16:12 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Karolokas
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
O dar klausimas: kodėl, kai tik įjungiu sistemą (pradedu simuliuot per Proteus 7), mano LED iš karto nedega, kai mygtukas dar tebebūna atleistas? Bandžiau kodą visaip modifikuot. Niekas nesikeičia.
 Atmega8 kodas
PranešimasParašytas: 2014 01 10, 16:19 Pranešti apie taisyklių pažeidimą Atsakyti su citata
sopkis
Moderatorius
Moderatorius
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje ICQ numeris
Tai programos pradžioje parašyk kad led turi degti, o poto jau tegul klauso mygtuko.

_________________
LY1PR
 Atmega8 kodas
PranešimasParašytas: 2014 01 10, 16:26 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Karolokas
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
Prieš while parašiau _delay_ms(200);, plaeidau. LED sumirksėjo, o kai programa įėjo į ciklą — LED užgesęs, nors mygtukas atviras.
 Atmega8 kodas
PranešimasParašytas: 2014 01 10, 17:15 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Master_Of_King
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje
Dar reikia nustatyti kad PD0 portas būtų įėjimas.
 Atmega8 kodas
PranešimasParašytas: 2014 01 10, 17:17 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Karolokas
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
Radau šiokios tokios informacijos http://www.part.lt/img/ade00efc36ef9fba2275d09997a756ec909.bmp
Parašiau, aktyvavau tą vidinį pull-up, veikia. Tik galvoju dabar kaip tai veikia... Smile

Visą dokumentą galima atsisiųsti iš čia:
http://ornella.iwr.uni-heidelberg.de/ROBOTICSLAB/DEVELOPMENT/DOWNLOAD/atmega-tutorial.pdf
 Atmega8 kodas
PranešimasParašytas: 2014 01 10, 17:23 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Karolokas
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
Parašydamas DDRD nustatai visą registrą į 00000000. Taigi atsikrai to daryti nebereikia.
 Atmega8 kodas
PranešimasParašytas: 2014 01 10, 17:38 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Ingo
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką Apsilankyti vartotojo tinklapyje
Karolokas rašo:
Parašydamas DDRD nustatai visą registrą į 00000000. Taigi atsikrai to daryti nebereikia.


Negalima portų įėjimus palikti neapibrėžtoje būsenoje. Tam ir yra naudojami pul-up rezistoriai (vidiniai arba isoriniai). Pul-up rezistorius, kai mygtukas yra nenuspaustas, į įėjimą paduoda "1".

Tavo atveju:
DDRD = 0; //visi iejimai
PORTD=1; //visiems ijungiame vidinius pul-up
 Atmega8 kodas
PranešimasParašytas: 2014 01 10, 18:38 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Dovydas
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką Apsilankyti vartotojo tinklapyje
Ingo rašo:
Karolokas rašo:
Parašydamas DDRD nustatai visą registrą į 00000000. Taigi atsikrai to daryti nebereikia.


Negalima portų įėjimus palikti neapibrėžtoje būsenoje. Tam ir yra naudojami pul-up rezistoriai (vidiniai arba isoriniai). Pul-up rezistorius, kai mygtukas yra nenuspaustas, į įėjimą paduoda "1".

Tavo atveju:
DDRD = 0; //visi iejimai
PORTD=1; //visiems ijungiame vidinius pul-up


Komentaras šiek tiek neteisingas. Turėtų būti taip:

PORTD=1; // pull up įjungiamas tik PD0 linijai

_________________
---
 Atmega8 kodas
PranešimasParašytas: 2014 01 10, 22:15 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Karolokas
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
Tuo atveju turėtų būti
Kodas:
DDRD = 0;
PORTD = 0xff;


Paskutinį kartą redagavo Karolokas, 2014 01 10, 22:23. Redaguota 1 kartą
 Atmega8 kodas
PranešimasParašytas: 2014 01 10, 22:17 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Karolokas
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
Truputį ne į temą:
Kuo skiriasi aprašymas (1 << PDX) nuo (1 << DDYX), kur X PIN'as, o Y PORT'as?
 Atmega8 kodas
PranešimasParašytas: 2014 01 11, 00:10 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
dazniausiai niekuom, nes PDX realiai = X, DDYX irgi = X, kur X [0..7]

na nebent tuom, kad PDX D visgi porto vardas

tas atseit skirtumas atkeliavo nuo 8051 seimos, kuriame porto bitai adresuojami po viena atskirose bitu apdorojimo komandose.
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

GENERAL FINANCING BANKAS

Mokslo festivalis „Erdvėlaivis Žemė

LTV.LT - lietuviškų tinklalapių vitrina

„Konstanta 42“

Technologijos.lt

Buitinė technika ir elektronika internetu žemos kainos – Zuza.lt

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
Thermal monocular
Thermal vision camera,
Night vision ar scope,
Night vision spotting scope
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
GTA 6 Weapons
GTA 6 Characters, GTA 6 Map, GTA 6 Vehicles
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps
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
FS25 Mods, FS25 Tractors, FS25 Maps
fs25mods.lt
Optical filters, UV optics, electro optical crystals
www.eksmaoptics.com
Reklamos paslaugos
SEO sprendimai

www.addad.lt
Elektroninių parduotuvių optimizavimas „Google“ paieškos sistemai
www.seospiders.lt
FS22 mods, Farming simulator 22 mods,
FS22 maps

fs22.com
Reklama


Reklama