Schau mal hier im Roboternetz oder auf www.mikrocontroller.net ins wiki. Da steht was dazu drin.
Hi,
Ich habe mein Asuro mit anderem ATmega8 bestuckt. Bisher funktioniert alle funktion prima außer die Dateiübertragung über UART. Ich habe in der Bibliothek entdeckt, dass die UART schon in Bootloader initialisiert ist.
Weiß jemand, wie man UART ohne diese Bootloader initialisieren kann?
Danke für euere Hilfe
EDIT: Dieses Problem ist gelöst
Lösung: Taktproblem, gekaufte ATMega benutzt interne Resonator, FUSE bits muss per ISP geändert werden.
Gruß Raid
Der ^^ Mann
Schau mal hier im Roboternetz oder auf www.mikrocontroller.net ins wiki. Da steht was dazu drin.
Ist das nicht die initialisierung für UART???Code:void Init(void) { //-------- serial interface programmed in boot routine and already running ------- // prepare 36kHz for IR - Communication TCCR2 = (1 << WGM20) | (1 << WGM21) | (1 << COM20) | (1 << COM21) | (1 << CS20); OCR2 = 0x91; // duty cycle for 36kHz TIMSK |= (1 << TOIE2); // 36kHz counter for sleep // prepare RS232 UCSRA = 0x00; UCSRB = 0x00; UCSRC = 0x86; // No Parity | 1 Stop Bit | 8 Data Bit UBRRL = 0xCF; // 2400bps @ 8.00MHz
Gruß Raid
Der ^^ Mann
Ja, steht doch da: "prepare RS232"
Aber der Zweck deiner Frage wird durch den post nicht ganz klar. Du musst schon genau sagen, was du willst.
Also: Ich habe nen neuen ATMega8, der ich mit einem ISP_Programmer programiere. Ich benutze standard Asuro library. Es klappt alles wunderbar bis auf die Infrarot-schnittstelle: ich kann SerWrite und SerRead nicht benutzen. Ich möchte gerne wissen was ich machen soll damit es geht
Gruß Raid
Der ^^ Mann
Hallo raid_ox,
beim Empfangen mit dem UART nicht, dafür aber beim Senden. Um eine 1 zu senden muss man nämlich den TxD-Pin, an den die IR-LED angeschlossen ist, mit 36kHz ein- und ausschalten. Dieses wird durch die Hardware des AVR leider nicht unterstüzt. Das heisst man muss die 36kHz per Sowtware mit einem Timer erzeugen, wofür es in der Lib aber schon eine fertige Funktion gibt. Wie die heisst weiss ich nicht, da ich selber keinen Asuro habe.
MfG Mark
Du meinst SerWrite und SerRead funktion? Das ist ja gerade das problem, diese funktionen gehen nicht.
Gruß Raid
Der ^^ Mann
Kann es vielleicht daran liegen, dass OC2 und MOSI einen gemeinsamen pin hat?
Gruß Raid
Der ^^ Mann
Ich kann mir nicht vorstellen, dass es damit zu tun hat, da es doch mit dem anderen ATMega8 funktioniert. Vorausgesetzt, du verwendest jetzt auch einen, kann es wohl nicht daran liegen. Ansonsten würde es bei keinem Asuro gehen. Das wäre schon aufgefallen![]()
Lesezeichen