Gast
#171731
Ich sitze jetzt schon seit ein paar Stunden hier und versuche
verzweifelt dem ATMega32 ein paar Mididaten zu entlocken. Am
Synthesizer kommt auch was an - nur scheint er damit nichts anfangen zu
können, da kein Ton kommt. Was mache ich falsch ?
Hier mal der Code, der mir am wahrscheinlichsten schien, dass er
funktionieren würde:
#include <avr/io.h>
#include <stdio.h>
#include <stdlib.h>
#include <avr/delay.h>
int main(void)
{
#ifndef F_CPU
#define F_CPU 16000000
#endif
#define UART_BAUD_RATE 31250
#define UART_BAUD_CALC(UART_BAUD_RATE,F_OSC)
((F_CPU)/((UART_BAUD_RATE)*16L)-1)
UBRRH=(uint8_t)(UART_BAUD_CALC(UART_BAUD_RATE,F_CPU)>>8);
UBRRL=(uint8_t)UART_BAUD_CALC(UART_BAUD_RATE,F_CPU);
UCSRB |= (1<<TXEN); //UART TX einschalten
UCSRC |= (1<<URSEL)|(3<<UCSZ0); //Asynchron 8N1
while(1)
{
while (!(UCSRA & (1<<UDRE)));
UDR = 144;
while (!(UCSRA & (1<<UDRE)));
UDR = 12;
while (!(UCSRA & (1<<UDRE)));
UDR = 127;
_delay_ms(100);
while (!(UCSRA & (1<<UDRE)));
UDR = 128;
while (!(UCSRA & (1<<UDRE)));
UDR = 12;
while (!(UCSRA & (1<<UDRE)));
UDR = 127;
_delay_ms(1000);
}
}
noch etwas was mir aufgefallen ist: wenn ich die Delays ändere ändert
sich der Blinktakt der RX-LED am Synthesizer nicht ...