Elektronika.lt
 2024 m. kovo 28 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 03 28, 16:32. Visos datos yra GMT + 2 valandos.
 Forumas » Programavimas » Programa mikro kontroleriui ATTINY2313
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ą 
 Programa mikro kontroleriui ATTINY2313
PranešimasParašytas: 2019 09 20, 18:55 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Vytkaaa
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Sveiki.
Kreipiuosi į Jus pagalbos, nes iš manęs programuotojas nekoks.
Tarkim situacija tokia, yra mikrokontroleris Attiny2313 du gerkonai ir trys relės. Gal kas galėtų patarti ar parašyti programa, kad:
1) Suveikus pirmam gerkonui - suveikia relė Nr.1.
2) Suveikus antram gerkonui - suveikia relė Nr.2.
3) Suveikus pirmam ir antram gerkonams - suveikia relė Nr.3.

Aš su CodeVisionAVR Evaluation pirma ir antra punktus man gaunas kažkas panašaus, bet trečio punkto niekaip neišmastau koki cikla panaudoti ar dar ką?. Vienu žodžiu bėda tokia
 Programa mikro kontroleriui ATTINY2313
PranešimasParašytas: 2019 09 20, 19:26 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
pasikoreguoji bitus ir teisingai nusistatai portus
Kodas:

  uint8_t state = 0;
  // pasiziurime kokie sudirbo gerkonai (aktyvus 0, t.y. trumpinimas i GND)
  if (!(PINB & (1 << PB1))) { state |= 1; }
  if (!(PINB & (1 << PB2))) { state |= 2; }

  // isejimu logika
  switch (state) {
     case 1: // suveikes tik 1 gerkonas
        PORTB &= ~((1 << PB4) | (1 << PB5)); // isjungiame 2, 3
        PORTB |= (1 << PB3);                           // ijungiame 1 rele
        break;
    case 2: // suveikes tik 2 gerkonas
        PORTB &= ~((1 << PB3) | (1 << PB5)); // isjungiame 1, 3
        PORTB |= (1 << PB4);                           // ijungiame 2 rele
        break;
    case 3: // suveike abu gerkonai
        PORTB &= ~((1 << PB3) | (1 << PB4)); // isjungiame 1, 2
        PORTB |= (1 << PB5);                           // ijungiame 3 rele
        break;
     default: // isjungiame visas
        PORTB &= ~((1 << PB3) | (1 << PB4) | (1 << PB5));
        break;
  }

P.S. gali buti smulkiu sintakses klaidu, nes netikrinau
 Programa mikro kontroleriui ATTINY2313
PranešimasParašytas: 2019 09 23, 11:11 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
zemiau pataisyta


Paskutinį kartą redagavo AlgisL, 2019 09 23, 12:49. Redaguota 2 kartus(ų)
 Programa mikro kontroleriui ATTINY2313
PranešimasParašytas: 2019 09 23, 12:28 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Vytkaaa
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Algi viskas gerai, aš pagal pirma tavo varijanta dariau viskas veikai kaip priklauso. Aš pats su bitais prigrybavau, nuo žioplumo vaistų nėra, tai pradžiai ir nesigavo.

Ačiū Algi už pagalbą.
 Programa mikro kontroleriui ATTINY2313
PranešimasParašytas: 2019 09 23, 12:48 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
AlgisL rašo:
Kaip jau minejau, as GCC gerbejas, tad IAR gali prie ko nors prisiknisti
pvz, truks interrupts includo...
GCC turi patogu ATOMIC_BLOCK, o kaip ten IAR, reikia googlinti.
Kodas:

#include <tiny2313.h>
#include <delay.h>

#define IN_PINS PIND
#define PIN1 ( 1 << 0 )
#define PIN2 ( 1 << 1 )
#define OUT_PORT PORTB
#define RELE1 0bxxxxxxxx // susidek bitus
#define RELE2 0bxxxxxxxx // bet tik ten kur
#define RELE3 0bxxxxxxxx // reliu / LED valdymas
#define R_OFF ~( RELE1 | RELE2 | RELE3 )

void main( void ) {

#pragma optsize-
  CLKPR=(1<<CLKPCE);
  CLKPR=(0<<CLKPCE) | (0<<CLKPS3) | (0<<CLKPS2) | (0<<CLKPS1) | (0<<CLKPS0); // == 0
#ifdef _OPTIMIZE_SIZE_
  #pragma optsize+
#endif
// Input/Output Ports initialization
// Port A initialization
//DDRA=(0<<DDA2) | (0<<DDA1) | (0<<DDA0);                  == 0
//PORTA=(0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);           == 0
  DDRA  = 0b00000000;
  PORTA = 0b11111111; // nepatariu palikti ore pakabintu bitu
// Port B initialization
  DDRB  = 0b01111111;
  PORTB = 0b10000000; // nepatariu palikti ore pakabintu bitu
// Port D initialization
  DDRD  = 0b00000000;
  PORTD = 0b11111111; // nepatariu palikti ore pakabintu bitu

  while ( 1 ) {
    uint8_t n = 0, state = 0, tmp = 0;

    // iejimuose 100 us turi issilaikyti stabilus "0"
    while ( ++n != 100 ) { delay_us( 1 ); tmp |= IN_PINS; }

    // sukombinuojame iejimo bitus i [0..3] indeksa
    // tavo atveju nebutina, nes pasirinkti 1-as ir 0-is bitai, bet nemaiso...
    if ( !( tmp & PIN1 ) ) { state |= 1; }
    if ( !( tmp & PIN2 ) ) { state |= 2; }

    // pats reliu i(s)junginejimas
    switch (state) {
      case 1: {
        __disable_interrupts(); // geriau, kai isvedimas buna atomarine procedura
        OUT_PORT = ( OUT_PORT & R_OFF ) | RELE1;
        __enable_interrupts();
        delay_ms( 500 );
      } break;
      case 2: {
        __disable_interrupts(); // geriau, kai isvedimas buna atomarine procedura
        OUT_PORT = ( OUT_PORT & R_OFF ) | RELE2;
        __enable_interrupts();
        delay_ms( 250 );
      } break;
      case 3: {
        __disable_interrupts(); // geriau, kai isvedimas buna atomarine procedura
        OUT_PORT = ( OUT_PORT & R_OFF ) | RELE3;
        __enable_interrupts();
        delay_ms( 250 );
      } break;
      default: {
        __disable_interrupts(); // geriau, kai isvedimas buna atomarine procedura
        OUT_PORT &= R_OFF;
        __enable_interrupts();
      } break;
    } // switch
  } // while
} // main


as ir prigrybavau su portais Wink
 Programa mikro kontroleriui ATTINY2313
PranešimasParašytas: 2019 09 23, 17:46 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Vytkaaa
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Kas nieko nedaro, tas niekada ir nesulysta Smile .
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

„Deinavos baldai“ — šeimos baldai

FS 22 Tractors
Farming Simulator 19 Mods, FS 22 Maps, FS22 Mods
ETS2 Mods
ETS2 Trucks, ETS2 Bus, Euro Truck Simulator 2 Mods
FS22 Tractors
Farming Simulator 22 Mods, FS22 Maps, FS22 Trucks
VAT calculator
VAT number check, What is VAT, How much is VAT
Paskola internetu
Vartojimo paskola, paskola automobiliui, paskola būsto remontui
Thermal monocular
Thermal vision camera,
Night vision ar scope,
Night vision spotting scope
FS22 Mods
FS22 Harvesters, FS22 Tractors Mods, FS22 Maps Mods
FS22 Mods
FS22 Maps,
FS22 Harvesters,
FS22 Tractors
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija
Sims 4 Mods
Sims 4 CC Clothes,
Sims 4 Hair CC,
Sims 4 Skill Cheat
Optic sight
Binoculars for hunting elk,
Best compact binoculars,
Riflescope hunting
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
Farming Simulator 2019 Mods, FS22 Mods, FS22 Maps
farmingsimulator19mods.fr
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