Digitális ki és bemenetek kezelése alacsony szinten

setup()
{
    DDRB=DDRB | B00010000;      //Az Arduino 13 (PB5) kivezetés kimenet lesz
    DDRD=DDRD & B11011111;      //Az Arduino 6 (PD6) kivezetés bemenet lesz
    PORTD=PORTD | B00100000;    //bekapcsoljuk a 6-os kivezetésen a felhúzó ellenállást
}

loop()
{
    if(PINB & B00100000==0) { PORTB=PORTB & B11101111;} //led kikapcsolása
    else { PORTB=PORTB | B00010000;}                    //led bekapcsolása
}

Digitális kimenet működési sebességének növelése

void setup() {
    pinMode(6,OUTPUT);
}

void loop() {
    digitalWrite(6,HIGH);
    digitalWrite(6,LOW);
}
void setup() {
    pinMode(6,OUTPUT);
}

void loop() {
    PORTD = B01000000;
    PORTD = B00000000;
}
void setup() {
    pinMode(6,OUTPUT);
}

void loop() {
    PORTD = PORTD | B01000000;
    PORTD = PORTD & B10111111;
}
void setup() {
    pinMode(6,OUTPUT);
}

void loop() {
    bitSet(PORTD,6);
    bitClear(PORTD,6);
}
#define NOP __asm__("nop\n\t")

void setup() {
    pinMode(6,OUTPUT);
}

void loop() {
    bitSet(PORTD,6);
    NOP;
    bitClear(PORTD,6);
}
int main(void)
{
    init();
    initVariant();
    #if defined(USBCON)
    USBDevice.attach();
    #endif
    setup();
    for (;;) {
        loop();
        if (serialEventRun) serialEventRun();
    }
    return 0;
}
void setup() {
    pinMode(6,OUTPUT);
    while (true) {
        bitSet(PORTD,6);
        bitClear(PORTD,6);
    }
}

void loop() {
}

Mennyire volt hasznos amit olvastál? Értékelés után szövegesen is leírhatod megjegyzéseidet és véleményedet!

Kattints egy csillagra az értékeléshez!

Szövegesen is leírhatod véleményedet! Ha kérdésed van, ne felejtsd el megadni az email címedet!