Teade

Collapse

Foorumi reeglid.

Foorumi reeglistik on uuendatud. Palume tutvuda ja arvesse võtta.
See more
See less

#define käsk

Collapse
X
 
  • Filter
  • Kellaaeg
  • Show
Clear All
new posts

    #define käsk

    Tere!
    Siin tutorialis on kavalalt Defineeritud PORTB-ga operatsioonid AVR prose peal.
    Tahtsin siis ise samuti teha ja mu koodijupp nägi välja selline:

    #define F_CPU 1000000UL
    #define PB2 PORTB ^= (1<<1)

    #include <avr/io.h>
    #include <util/delay.h>
    #include <stdio.h>

    int main(void){

    DDRB = 0b00000010;

    while(1){
    PB2;
    _delay_ms(1);
    }}

    Selle peale ütleb kompilaator "statement with no effect" ja kui debuggida siis jääb programm lõplikult jooksma while tsüklis PB2 peale minnes.
    Ennem oli mul while tsüklis tehtud lihtsalt: PORTB ^= (1<<1); ja kõik töötas flippides bitti.
    Kas mul midagi kahe silma vahele jäänud, miks ta niimoodi eeldefineeritud kujul ei tööta?
    Aitähh!

    #2
    Vs: #define käsk

    tähemärgi kombinatsioon PB2 võibolla on kasutusel ka mõnes include .h failis ja defineeritakse nende #include ridade ajal millegi muuga üle?
    proovi selle asemel midagi unikaalsemat ehk kasutada nagu my_hyper_super_PB2

    Comment


      #3
      Vs: #define käsk

      Täitsa õige jutt, Suured tänud

      Comment

      Working...
      X