Probleme mit Bitmanipulation

OP #3553945
Lesenswert?

MoinMoin liebes Forum,
ich hab ein kleines Problem mit den Bitmanipulationen(Atmel Studio 6.1).

Ich wollte ein kleines Progrämmchen schreiben, um mich ans Messen mit 
dem ADC per Interrupt zu machen.
Dazu hab ich mir eine Variable ISR_Flags erstellt, in welcher das LSB 
gesetzt wird(in der ISR) wenn die Messung abgeschlossen ist, und wieder 
auf Null gesetzt werden soll, wenn die Messung fertig ist, und eine 
Konstante Messungkomplett die auf 0b00000001 gesetzt ist.

Wenn ich das ganze dann per
1
ISR_Flags |= (1<<Messungkomplett)

versuche zu setzen, wird mir das vom Studio als Fehler angekreidet, in 
Registern ala ADCSRA funktioniert das ohne Mosern.

Kann mir wer sagen, welchen Denkfehler ich hier mache, oder ob des 
Studio spinnt? Ich meine, soetwas schonmal genauso gelöst zu haben, hab 
das aber nicht mehr auf meiner Festplatte....

hier nochmal der Code in seiner Gesamtheit:
1
/*
2
 * MotorBla.c
3
 *
4
 * Created: 27.02.2014 19:14:55
5
 *  Author: Ich
6
 */ 
7

8

9
#define F_CPU 8000000UL
10

11
#include <avr/io.h>
12
#include <avr/interrupt.h>
13

14

15

16
#define Messungkomplett 0b00000001;
17

18

19
void SystemStart(void);
20
void ADC_Messenstart(uint8_t Channel);
21

22

23

24
uint8_t ISR_Flags = 0;
25

26
uint16_t ADC_Channel0 = 0;
27

28

29
ISR(ADC_vect)
30
{
31
  ADC_Channel0 = ADC;
32
  ISR_Flags |= (1<<Messungkomplett);  
33
}
34

35
int main(void)
36
{
37
    while(1)
38
    {
39
        
40
    }
41
}
42

43

44
void SystemStart(void)
45
{
46
  TCCR1A |= (1<<COM1A1)|(1<<WGM11)|(1<<WGM10);      //Timer1-
47
  TCCR1B |= (1<<WGM12)|(1<<CS00);              //Initialisierung
48
  
49
  ADCSRA |= (1<<ADEN)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS2);    //Analog-Digital-Converter Initialisierung
50
}
51

52
void ADC_Messenstart(uint8_t Channel)
53
{
54
  if(Channel == 0)
55
  {
56
    ADMUX = 0;
57
    ADCSRA |= ADSC;
58
    ISR_Flags &= ~(1<<Messungkomplett);
59
  }
60
}

MfG Chaos
#3554016
Lesenswert?

j. t. schrieb:
> AAAAAHHHHHHH
>
> wunderbar, vielen dank dafür =), ich war schon am Verzweifeln. Das
> kleine Mistding hab ich irgendwie immer übersehen, da die Fehlermeldung
> mir was in der genannten Zeile erzählt hat, von wegen es würd ne Klammer
> fehlen.

:-)

Und da hat der Compiler ja auch vollkommen recht.

In
1
ISR_Flags |= (1<<0b00000001;);
fehlt ja auch tatsächlich die ) vor dem ersten ;

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren