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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.