#define käsk

Collapse
X
 
  • Kellaaeg
  • Show
Clear All
new posts
  • A-rap
    Liige
    • 02/2010
    • 37

    #1

    #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!
  • dieter
    Liige
    • 02/2006
    • 396

    #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

    • A-rap
      Liige
      • 02/2010
      • 37

      #3
      Vs: #define käsk

      Täitsa õige jutt, Suured tänud

      Comment

      Working...