Ivan_Ryger napísal:a ako sa prejavuje tá chyba?
Toto sa nerobí, že sa hodí kus kódu a hľadaj...
Čo to má robiť a čo to nerobí?
Má to posílat a přijímat data přes usart. V kompilátoru mi to chybu nehodí, ale po nahrátí do megy644 program nefunguje. Zkoušel jsem např. odeslat číslo nebo znaky, ale program nefunguje. Jinak potřebuju odeslat do počitače obsah registru ICR1.
Do UBBR davas priamo cislo, zodpovedajuce baudovej rychlosti. To je zle, pozri si v datasheete vypocet cisla, ktore tam patri.
Okrem toho, nezaskodilo by trochu proaktivity z tvojej strany. Nauc sa strukturovat svoju pracu a debuggovat, aspon tak jednoducho s LEDkou. Napis si najprv program, ktory vypise jeden znak, potom tam pridavaj dajsei veci. Pripoj si na MCU par LEDiek a zapinaj/vypinaj ich ked sa stane neico dolezite, tak aspon trochu vies kde sa v programe nachadzas. Bez toho proste nahras velky program a bum - nic nejde. Takyto styl programovania si mozu dovolit iba ozajstni profici, ktori presne vedia co robia, lebo to tak robia uz roky.
V Atmel Studiu (dále AS) mi nešlo použít USART, tak jsem dal USART1, což v datascheetu není, ale AS to jde. Nebo mám použít USART0? Nevím jaký je mezi tím rozdíl.
Z datascheetu:
The ATmega644 has one USART, USART0.
The functionality is described below, most register and bit references in this section are written in
general form. A lower case “n” replaces the USART number.
The Universal Synchronous and Asynchronous serial Receiver and Transmitter (USART) is a
highly flexible serial communication device.
A simplified block diagram of the USART Transmitter is shown in Figure 17-1 on page 165. CPU
accessible I/O Registers and I/O pins are shown in bold.
The Power Reducion USART0 bit, PRUSART0, in ”PRR – Power Reduction Register” on page
44 must be disabled by writing a logical zero to it.