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!
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!
Comment