Tiedote ylläpidolta:

Elektroniikkafoorumi sulkeutuu tietoturva ongelmien takia.
Käyttäjien tietoja (yv:t, sähköpostiosoite ja salasanan hash) on saattanut vuotaa vääriin käsiin.

Foorumi on asettettu vain luku tilaan. Vanhoja keskusteluja voi lukea palvelinsopimuksen päättymiseen asti.
Tietokannasta on poistettu kaikki salasanat, sähköpostiosoitteet ja yksityisviestit.

Jos haluat saada omat yksityisviestisi, lähetä sähköpostia yllapito@elektroniikkafoorumi.com
samasta sähköpostista mikä oli foorumin tiedoissa niin voin kaivella niitä varmuuskopioista.

Mielenkiintoni foorumin ylläpitoon on viime vuosina ollut vähäistä jo muutenkin joten tähän on hyvä lopettaa.
Kiitokset kaikille käyttäjilla ja pahoittelut mahdollisista ongelmista.

Päivitys: Näyttäisi siltä että mahdollinen vuoto koski vanhaa phpBB2 tietokantaa,
joten helmikuuta 2012 uudemmat tiedot pitäisi olla turvassa.

-Lahha
yllapito@elektroniikkafoorumi.com


Kuinka arduino nanossa tehdään keskeytys ?

Keskustelua mikrokontrollereista ja niiden ohjelmoinnista.

Valvoja: Moderaattorit


Jäsen
Jäsen
Viestit: 134
Liittynyt: La Maalis 17, 2012 14:43
ViestiLähetetty: Ma Elo 01, 2016 19:23
Toisin sanoen, kuinka tämä ohjelma tehdään keskeytyksen avulla ?

Koodi: Valitse kaikki
const int Strobe = 2;
const int Data0 = 3;
const int Data1 = 4;
const int Data2 = 5;
const int Data3 = 6;
const int Data4 = 7;
const int Data5 = 8;
const int Data6 = 9;
const int Data7 = 10;
const int ACK = 11;
const int BUSY = 12;
const int PINS = 11;
const int ACTime = 0;

int pin[PINS]= {Strobe,Data0,Data1,Data2,Data3,Data4,Data5,Data6,Data7,ACK,BUSY};
int value[PINS];

void setup() {
  Serial.begin(4800);
  for (int i = 0;i<PINS;i++) pinMode(pin[i],INPUT);
  pinMode(BUSY,OUTPUT);
  digitalWrite(BUSY,HIGH);
}

void loop() {
  int i;
  int c;
  int k;
  digitalWrite(BUSY,LOW);
  while(digitalRead(Strobe)!=LOW) ;

    digitalWrite(BUSY,HIGH);
    k=1;
    c=0;
    for(i=1;i<9;i++) {
      if(digitalRead(pin[i])) c+=k;
      k=k*2;
    }
    Serial.print((char)c);
}


Omia yritelmiä on useita, mutta tässä nyt jotain...
Ei vain tule keskeytykseen...
Koodi: Valitse kaikki
const int Strobe = 2;
const int Data0 = 3;
const int Data1 = 4;
const int Data2 = 5;
const int Data3 = 6;
const int Data4 = 7;
const int Data5 = 8;
const int Data6 = 9;
const int Data7 = 10;
const int ACK = 11;
const int BUSY = 12;
const int PINS = 11;
const int ACTime = 0;

int pin[PINS]= {Strobe,Data0,Data1,Data2,Data3,Data4,Data5,Data6,Data7,ACK,BUSY};
int value[PINS];

void setup() {
  Serial.begin(4800);
  for (int i = 0;i<PINS;i++) pinMode(pin[i],INPUT);
  pinMode(BUSY,OUTPUT);
  pinMode(13,OUTPUT);
  digitalWrite(BUSY,HIGH);
  pinMode(Strobe, INPUT);
  attachInterrupt(INT0,check,FALLING); //FALLING); //FALLING);
  interrupts();
}
  int i;
  int c;
  int k;

void check() {
  digitalWrite(BUSY,HIGH);
  {
    k=1;
    c=0;
    Serial.println("TULI!!");
    for(i=1;i<9;i++) {
      if(digitalRead(pin[i])) c+=k;
      k=k*2;
    }
    Serial.print((char)c);
   
  }
  digitalWrite(BUSY,LOW);
}

void loop() {
  delay(500);
  digitalWrite(13,LOW);
  delay(500);
  digitalWrite(13,HIGH); 
}



Paluu Mikrokontrollerit ja ohjelmointi

Paikallaolijat

Käyttäjiä lukemassa tätä aluetta: Ei rekisteröityneitä käyttäjiä ja 2 vierailijaa