Forum: Mikrocontroller und Digitale Elektronik Unverträglichkeit Windows7 mit AVR Studio 4.18?


von Freddy (Gast)


Lesenswert?

Hallo zusammen,

ich habe mich schulisch bedingt vor ca. 2 Jahren mit µC beschäftigt. 
Habe gestern mal meine alte Unterlagen, sowie mein STK500-Board wieder 
ausgepackt.
Zum Einstieg befasse ich mich nun mit dem UART.

Ich habe ein alters Programm herausgeholt, es für gut befunden, eine 
hex-File erstellt und in den µC Controller geladen. Mit nem 
Terminalprogramm sende ich nun Zeichen an den µC welche dieser sofort 
wieder zurücksendet. Soweit die Theorie, praktisch tut sich aber nichts.

Bin mir aber 100% sicher, dass das Programm so funktioniert hat. 
Glücklicherweiße habe ich auf meine Platte noch ein hex-File aus dem 
Jahre 2009 zu diesem Programm gefunden. Lade ich dieses in den µC 
funktioniert alles wunderbar.

Der einzigeste Unterschied zu damals ist, dass ich Windows Vista 
installiert hatte. Nun habe ich Windows 7 installiert.

Wird unter Windwos 7 das hex-File in irgendeiner Weiße anderes erstellt?
Habt ihr sowas schon mal gesehen?

Danke!

von Peter II (Gast)


Lesenswert?

Freddy schrieb:
> ird unter Windwos 7 das hex-File in irgendeiner Weiße anderes erstellt?
> Habt ihr sowas schon mal gesehen?

windows kann überhaupt keine Hex file erstellen, also beschränkt sich 
die Frage auf die Version vom AVR Studio 4.18 und ein eventuellen GCC. 
Hast du dort die gleichen versionen wie füher verwendet? Wenn nein 
werden es wohl software fehler sein die sich jetzt anders auswirken.

von Fabian B. (fabs)


Lesenswert?

Nein.
Ich verwende AVRStudio 4.18 mit WinAVR (20100110) sowohl mit Win7 x86 
als auch mit x64 ohne irgendwelche Probleme.
Da wird dein altes Hex wohl doch nicht identisch sein zu dem gefundenen 
Code.

Gruß
Fabian

von Freddy (Gast)


Lesenswert?

Danke für eure Antworten!

ich verwende das AVRStudio 4.18 mit WinAVR (20100110). Ich füge euch 
einfach mal meine c-code an, vllt hat sich ja doch ein fehler 
eingeschlichen, den ich selbst nicht mehr sehe....

Etwas fällt mir jetzt doch noch auf:

"gcc plug-in: No AVR Toolchain installation found. Using WinAVR instead 
if installed. The AVR GCC plug-in can still be used if you set up your 
own build tools."

Was kann ich mit dieser Meldung anfangen?
1
// Das Programm initialisiert den USART des ATmega16 im
2
// asynchronen Betrie mit 19200 Baud Übertragungsrate.
3
// 2 Stopbit, 8 Datenbit, keine Parität. Der USART wird so
4
// betrieben, dass ein empfangenes Zeichen wieder zurück
5
// übertragen wird (Echobetrieb). 
6
// F_CPU = 3,684 MHz
7
8
#include <io.h>
9
10
//Prototypen der Funktionen
11
12
void mcu_init();
13
void usart_init(uint16_t baudrate);
14
uint8_t usart_receive();
15
void usart_transmit(uint8_t data);
16
17
//Hauptprogramm
18
19
int main (void)
20
{
21
  mcu_init();
22
  usart_init(11);    //setzt Baudrate auf 19200
23
            //bei f = 3,6864 MHz
24
  while(1)
25
  {
26
    //Echo des empfangenen Zeichens
27
    usart_transmit(usart_receive());
28
  }
29
30
  return(0);            
31
}
32
void mcu_init()
33
{
34
  DDRA = 0xFF;
35
  DDRB = 0xFF;
36
  DDRC = 0xFF;
37
  DDRD = 0xFE;    //PD0 = RxD muss Input sein
38
39
  PORTA = 0;
40
  PORTB = 0;
41
  PORTC = 0;
42
  PORTD = 0;
43
44
  SP = RAMEND;
45
}
46
47
void usart_init(uint16_t baudrate)
48
{
49
  //Setzt Baudrate auf 19200
50
  UBRRH = (uint8_t)(baudrate >> 8);   //Wert schieben um HIGH BYTE wert 
51
                    //zu erreichen
52
  UBRRL = (uint8_t) baudrate;
53
54
  //Sender und Empfänger einschalten
55
  UCSRB = ((1<<RXEN)|(1<<TXEN));
56
57
  //8 Datenbit und 2 Stopbits einstellen
58
  UCSRC = ((1<<URSEL)|(1<<USBS)|(1<<UCSZ1)|(1<<UCSZ0));
59
60
}
61
62
63
uint8_t usart_receive()
64
{
65
  //Warten bis das Zeichen (8-Bit) empfangen sind
66
  while(!(UCSRA & (1<<RXC)))
67
  {
68
  }
69
  return UDR;
70
}
71
72
void usart_transmit(uint8_t data)
73
{
74
  while(!(UCSRA & (1<<UDRE)))
75
  {
76
  }
77
  UDR = data;
78
}



Danke für eure Antworten

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.