Tema: Re: Padekit pagaut bug'a (Arduino)
Autorius: Tester
Data: 2015-06-05 15:33:52
is http://gammon.com.au/interrupts:
pagrindineje funkcijoje siulo naudoti
noInterrupts ();
..........
interrupts ();

Arduino turiu, bet su pertraukimais dar nezaidziau.

> volatile unsigned int c = 0;  // counter
> volatile boolean dir = 1;     // direction
>
> int fwdrevPin = 9;
>
> void setup() {
>   attachInterrupt(0, tacho, CHANGE);
>   pinMode(fwdrevPin, OUTPUT);
> }
>
> void loop() {
>

noInterrupts ();

> if (c > 623){
>
>    // Serial.println(c);
>
>    dir = !dir;                  // Switch direction
>    c = 0;                       // Reset counter
>    if (dir==0) {
>      analogWrite(fwdrevPin, 140);
>   }
>    else {
>      int t = 128 - torque;
>      analogWrite(fwdrevPin, 100);
>    }
> }
>
>
>
interrupts ();

> }
>
> void tacho()
> {
>   c++;
> }