Atmel Studio 6 Problem

Gast #4100489
Lesenswert?
• ▲
▼
Hi,
ich habe ein Problem mit einem DMX Sendecode von Radig Ulrich. Kann mir 
jemand sagen woher diese Fehler kommen?
1
#include <avr/interrupt.h>
2
#include <avr/io.h>
3
#include <stdio.h>
4

5
#define F_CPU 8000000
6
#include <util/delay.h>
7

8
#define DMX_BAUD 250000
9
#define DMX_BAUD_BREAK 80000
10

11
volatile unsigned char dmx_buffer[400];
12

13
//############################################################################
14
//DMX Senderoutine
15
ISR (USART_TX_vect)
16
//############################################################################
17
{
18
  static unsigned int  dmx_channel_tx_count = 0;
19
  static unsigned char dmx_tx_state = 0;
20
  
21
  switch (dmx_tx_state)
22
  {
23
    case (0):
24
      UBRR0   = (F_CPU / (DMX_BAUD_BREAK * 16L) - 1);
25
      UDR0 = 0; //RESET Frame
26
      dmx_tx_state = 1;
27
      break;
28

29
    case (1):
30
      UBRR0   = (F_CPU / (DMX_BAUD * 16L) - 1);
31
      UDR0 = 0; //Start Byte
32
      dmx_tx_state = 2;
33
      break;
34

35
    case (2):
36
      _delay_us(10);
37
      //Ausgabe des Zeichens
38
      UDR0 = dmx_buffer[dmx_channel_tx_count];
39
      dmx_channel_tx_count++;
40
      
41
      if(dmx_channel_tx_count == 400)
42
      {
43
        dmx_channel_tx_count = 0;
44
        dmx_tx_state = 0;
45
      }
46
      break;
47
  }
48
}
49

50
//############################################################################
51
//Hauptprogramm
52
int main (void) 
53
//############################################################################
54
{  
55
  //Init usart DMX-BUS
56
  UBRR0   = (F_CPU / (DMX_BAUD * 16L) - 1);
57
  DDRD |= (1<<PD1); //Output TXD Pin ATmega88
58
  UCSR0B|=(1<<TXEN0)|(1<<TXCIE0); // TXEN0 Transmitter enable / TXCIE0 TX complete interrupt enable 
59
  UCSR0C|=(1<<USBS0); //USBS0 2 Stop bits  
60
  sei();//Globale Interrupts Enable
61
  UDR0 = 0;//Start DMX
62
  
63
  //Endlosschleife
64
  while(1)
65
  {
66
    dmx_buffer[0]=255;
67
    dmx_buffer[1]=255;
68
    dmx_buffer[2]=255;
69
    dmx_buffer[3]=255;
70
    dmx_buffer[4]=255;
71
    dmx_buffer[6]=255;
72
    dmx_buffer[5]=255;
73
  }
74
}

Danke im vorraus
Angehängte Dateien:
Gast #4100505
Lesenswert?
• ▲
▼
>mhhhh....Ich habe atmega8 angegeben das müsste doch richtig sein oder?
>Weiß einer von euch welcher Controller das noch sein könnte??

ATMega88. Der ATMega8 zB. hat kein UDR0, aber ein UDR.
Das gleiche für die anderen Fehlermeldungen.

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.