Elektronika.lt
 2024 m. lapkričio 14 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 14, 18:56. Visos datos yra GMT + 2 valandos.
 Forumas » Mikrovaldikliai » Interuptai
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 14
Pereiti prie 1, 2, 3, 4  Toliau
Pradėti naują temą  Atsakyti į pranešimą Rodyti ankstesnį pranešimą :: Rodyti kitą pranešimą 
 Interuptai
PranešimasParašytas: 2006 06 20, 21:36 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
Norėčiau su AVR padaryti taip, kad paspaudus mygtuką pradėtu vykti kita programa (pvz pradėtų kitaip plykčioti šviesos diodai). Kai pabandžiau tai padaryti su ciklu, tai man kaip ir viskas veikė, bet pats blykčiojimas neveikė, nes išėjo ciklas cikle. Galvoju gal man panaudot interuptus (pertrauktys)? Kaip suprantu, pertrauktim galima panaudoti tik 16 ir 17 ATmegos16 kojas? Gal yra kitas būdas man visą tai padaryti, nenaudojant pertraukčių?
 Interuptai
PranešimasParašytas: 2006 06 20, 23:18 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Dreifas
Moderatorius
Moderatorius
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje ICQ numeris
tai zodziu pakopink savo programa arba jos dali ir tada ziuresim ka ten blogai darai. Diodu mirkciojimui interuptu praktiskai nereikia.
 Interuptai
PranešimasParašytas: 2006 06 21, 11:40 Pranešti apie taisyklių pažeidimą Atsakyti su citata
budris
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą MSN Messenger
mano galva interuptai nors ir nebutini bet geras tonas. o siaip galima tiesiog portus tikrint. ir bounce'inima sutvarkyt.

dar karta paskaicius problema jei norima is vienos programos persokt i kita, tai tikrai interuptai geriausia iseitis.
 Interuptai
PranešimasParašytas: 2006 10 10, 17:02 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
Būtų gerai, jei kas nors parodytų kokį pavyzdėlį su interuptais. Negaliu aš jau be jų Confused Naudoju Win AVR. Interuptai bus naudojami ne šviesos diodams perjunginėti...
 Interuptai
PranešimasParašytas: 2006 10 10, 23:49 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Dreifas
Moderatorius
Moderatorius
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje ICQ numeris
prasom:
Kodas:

#include <avr\io.h>
#include <avr\iom16.h>
#include <avr\interrupt.h>

#define outp(a, b) b = a

uint8_t led;

ISR(INT0_vect) { /* signal handler for external interrupt int0 */

    led =  0x01;

   }

ISR(INT1_vect) {    /* signal handler for external interrupt int1 */

    led =  0x00;

   }

int main(void) {

    outp(0x01, DDRB);      /* use PortB for output (LED) */

    outp(0x00, DDRD);      /* use PortD for input (switches) */

    outp((1<<INT0)|(1<<INT1), GICR); // enable external int0, int1

    sei();       /* enable interrupts */

    led =  0x01;

    for (;;) {

    outp(led, PORTB);

    }                      /* loop forever */

}



Paskutinį kartą redagavo Dreifas, 2006 10 11, 09:35. Redaguota 1 kartą
 Interuptai
PranešimasParašytas: 2006 10 11, 07:19 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
Šitą jau bandžiau, bet man niekaip nepavyko sukompiliuoti Atmegai16.
 Interuptai
PranešimasParašytas: 2006 10 11, 09:25 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Dreifas
Moderatorius
Moderatorius
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje ICQ numeris
Pataisiau ana teksta. Vietoj GIMSK reikai naudoti GICR registra. ir includinau atmega16.
Pabandziau - kompiliuojasi Wink
 Interuptai
PranešimasParašytas: 2006 10 11, 18:33 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
Nelabai suprantu, kaip tas kodas veikia. Gerai būtų, jei pakomentuotumėt lietuviškai Smile Sukompiliavau, įrašiau, tai ant PORTB pirmos kojos LEDas šviečia ir viskas. Nereguoja į nieka...
 Interuptai
PranešimasParašytas: 2006 10 11, 20:38 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Dreifas
Moderatorius
Moderatorius
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje ICQ numeris
Na nezinau. Kodas paprastas. jeigu anglu bent kiek kerti, tai viskas graziai aprasyta AVRLIBC dokumentacijoj. Isverciau komentarus, gal bus aiskiau kas. Esme tame kad chemoj turi prijungti mygtukus prie INT0 ir INT1 isvadu i zeme. Pasizaisk su AVR studio arba su VMLAB simuliatoriumi.

Kodas:

#include <avr\io.h>
#include <avr\iom16.h>
#include <avr\interrupt.h>

#define outp(a, b) b = a

uint8_t led;
/* paprograme apdorojanti pertraukimus
kai nuspaudziamas mygtukas esantis ant INT0 kojos
tada led reiksmei priskiriama 0x01 reiksme - LED ijungiamas */
ISR(INT0_vect) {

    led =  0x01;

   }
/* paprograme apdorojanti pertraukimus
kai nuspaudziamas mygtukas esantis ant INT1 kojos
tada led reiksmei priskiriama 0x00 reiksme  - LED isjungiamas */
ISR(INT1_vect) {    /* signal handler for external interrupt int1 */

    led =  0x00;

   }

int main(void) {
 /* PortB nustatomas isvedimui (LED) */
    outp(0x01, DDRB);     
/* PortD nustatomas ivedimui (mygtukams) */
    outp(0x00, DDRD);     
/* ijungiam  int0, int1 pertraukimus*/
    outp((1<<INT0)|(1<<INT1), GICR);
 /* ijungiam gloablini pertraukimu palaikyma */
    sei();     
/**pradine LED reiksme - ijungtas/
    led =  0x01;

    for (;;) {
/* amzinas ciklas. led reiksme keiciama pertraukimo paprogramese */
    outp(led, PORTB);

    }                     

}

 Interuptai
PranešimasParašytas: 2006 10 12, 09:30 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
Komentarų prašiau, nes man kažko šis kodas nefunkcionuoja. Kaip suprantu, INT0 yra 16 koja, o INT1 yra 17 koja. Padavus žemę (-) į vieną iš šių kojų, niekas nepasikeičia. LEDas ant PORTB, kaip švietė, taip šviečia. Nesuprantu, kodėl nereaguoja. Kur gali būti problema?
 Interuptai
PranešimasParašytas: 2006 10 12, 10:58 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Dreifas
Moderatorius
Moderatorius
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje ICQ numeris
Kadangi pradejau tau padeti tai ir uzbaigsiu Smile zodziu paleidau as pas saves ant simuliatoriaus ir priverciau veikti. Ten kode paziurek as injungiau vidinius pullup rezistorius (outp(0xFF, PORTD);). Dabar bandyk tikrai veiks.

Kodas:

#include <avr\io.h>
#include <avr\iom16.h>
#include <avr\interrupt.h>

#define outp(a, b) b = a

uint8_t led;
/* paprograme apdorojanti pertraukimus
kai nuspaudziamas mygtukas esantis ant INT0 kojos
tada led reiksmei priskiriama 0x01 reiksme - LED ijungiamas */
ISR(INT0_vect) {
    led =  0x01;
   }
/* paprograme apdorojanti pertraukimus
kai nuspaudziamas mygtukas esantis ant INT1 kojos
tada led reiksmei priskiriama 0x00 reiksme  - LED isjungiamas */
ISR(INT1_vect) {    /* signal handler for external interrupt int1 */
    led =  0x00;
   }
int main(void) {
 /* PortB nustatomas isvedimui (LED) */
    outp(0x01, DDRB);
/* PortD nustatomas ivedimui (mygtukams) */
      outp(0x00, DDRD);
/*!!!Nustatom vidini pullup!!!*/
      outp(0xFF, PORTD);
/* ijungiam  int0, int1 pertraukimus*/
    outp((1<<INT0)|(1<<INT1), GICR);
 /* ijungiam gloablini pertraukimu palaikyma */
    sei();
/**pradine LED reiksme - ijungtas*/
    led =  0x00;

    for (;;) {
/* amzinas ciklas. led reiksme keiciama pertraukimo paprogramese */
    outp(led, PORTB);

    }
}

 Interuptai
PranešimasParašytas: 2006 10 12, 14:43 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
Sukompiliavau ir įrašiau, bet nereaguoja į nieką. Nesuprantu Confused
 Interuptai
PranešimasParašytas: 2006 10 12, 14:54 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Dreifas
Moderatorius
Moderatorius
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje ICQ numeris
na man ant tokios schemos veikia.
 Interuptai
PranešimasParašytas: 2006 10 12, 18:49 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
Ačiū, veikia. Nors netaip kaip turėtų Razz
 Interuptai
PranešimasParašytas: 2006 12 17, 20:55 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
Ar gali interuptas įvykti be išorinnių pokyčių portuose, o įvykus kokiem veiksniam. Pvz pasiekus tam tikrą kintamojo reikšmę?

_________________
---
Pradėti naują temą  Atsakyti į pranešimą Pereiti prie 1, 2, 3, 4  Toliau
 
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
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