Napište program pro vyslání libovolného textu do PC. Přenosová rychlost 19200 Bd.Datový rámec: 8 datových bitů, 2 STOP bity, lichá parita. fCLK = 20MHz. Použijte program TERMINAL.a jeste tlačítko pro vysilani textu do pc :) prooosiiim nevim si rady :/
Fórum › C / C++
USART-pomoc
www.atmel.com datasheet a application notes. Kromě toho se tu něco takového rozebíralo nedávno
hu
Vysílání můžeš řídit dvěma způsoby:
1. testovat pravidelně příznak
2. přerušením (vhodnější)
Text budeš mít asi v bufferu char*. Algoritmus:
1. Nastavíš GPIO - pin RxD jako výstup
2. Nastavíš a povolíš přerušení vyvolané vyprázdněním vysílacího registru USART
3. Nastavíš USART - pro baudrate a fclk ti pomůže tabulka z datasheetu
4. zahájíš vysílání - zapíšeš první znak do vysílacího registru
V obsluze přerušení budeš zapisovat znak který následuje po odvysílaném znaku. Pokud poslední odvysílaný znak byl 0x00, ukončíš vysílání.
hu
Až z něj vypadne, že je to ARM nebo nějaká modifikovaná 8051, bude veselo
hu
to v ramečku by melo být to tlačitko je to spatne a už nwm jak dál prosim pomocte je to 2313 :)
#11 simon
#define TXD PD1
#define RXD PD0
// ...
int main(void) {
DDRB = 0x00;
PORTB= 0xFF;
DDRD = _BV(TXD); // TXD pin as output (PD1)
PORTD= 0xFF; // enable pullups
USART_init();
while (1) {
if ((PINB & _BV(PINB2))==0) {
// ...
}
}
}
jen musis tak nejak pocitat s tim, ze kdyz podrzis tlacitko a nebudes kontrolovat, jestli uz se predchozi znak odeslal cely, tak ze to bude posilat nesmysly tim jak se budou prepisovat data v UDR
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
USART u ATtiny2313 — založil rudla
SYNASER COM USART — založil Tadeáš
Potřebná rychlost USART — založil Palkic.89
ATtiny2313 - prijímanie dát cez USART — založil poprad
Pomoc.... nějaká chybka prosím pomoc - více v podrobném popisu — založil tkstudent
Moderátoři diskuze