Home
WWW
GCC
Delphi
MySQL
Article
Contact
Programowanie progesorów Atmela z wykorzystaniem kompilatora GCC
dodatki2
Dodatki AVR
Kompilacja warunkowa AVR
AtMega4809
GCC dla MCU
C w skrócie
GCC Operacje na bitach
Strona o C na procesory
Opis rejestrów USART-u w Atmega328 i jemu podobnych.
UART
Opisane ponioże rejstru odnoszÄ™ do USART w Atmega328. 
Podobnie dziaÅ‚ajÄ… w Atmeag8 ale nie można siÄ™ natym wzorowcÄ… 
i należy siÄ™gnÄ…c do dokumentacji Atmega8.
UCSRxA
RXC   - bit informujÄ…cy o skompletowaniu danej odbieranej
TXC   - bit informujÄ…cy o wysÅ‚aniu caÅ‚ej danej
UDRE  - bit informujÄ…cy, Å¼e bufor nadawania jest gotowy do przyjÄ™cia nowej danej
FE    - bit zgÅ‚oszenia błędu ramki (ustawiany gdy w oczekiwanym czasie 
        nie pojawiÅ‚ siÄ™ bit stopu)
DOR   - bit zgÅ‚oszenia błędu nadpisania (dana odbierana jest skompletowana, 
        a wykryto bit startu nowej danej odbieranej)
PE    - błąd parzystoÅ›ci
U2X   - podwojenie prÄ™dkoÅ›ci transmisji w trybie asynchronicznym
MPCM  - bit współpracy wieloprocesorowej
UCSRxB 
RXCIE - bit maski przerwania od skompletowania danej odbieranej
TXCIE - bit maski przerwania od wysÅ‚ania danej
UDRIE - bit maski przerwania od pustego rejestru danych
RXEN  - włączanie odbiornika portu USART (zapis Â„1”)
TXEN  - włączanie nadajnika portu USART (zapis Â„1”)
UCSZ2 - jeden z bitów okreÅ›lajÄ…cych rozmiar danej
RXB8  - 9-ty bit odbierany
TXB8  - 9-ty bit nadawany
UCSRxC
URSEL - bit dostÄ™pu do rejestru UCSRC i UBRRH, ustawienie na 1 zapewnia dostÄ™p do 
        rejestru UCSRC. Oba rejestry majÄ… ten sam adres.
UMSEL - wybór trybu synchronicznego lub asynchronicznego, Â„0” tryb asynchroniczny.
UPM1 
UPM0  - wybór rodzaju kontroli parzystoÅ›ci: wyłączona, parzystość parzysta, 
        parzystość nieparzysta
USBS  - ilość bitów stopu: Â„0”- 1bit stopu, Â„1”- 2 bity stopu
UCSZ1
UCSZ0 - wybór iloÅ›ci bitów danej
UCSZ2 UCSZ1 UCSZ0   DÅ‚ugość danej
    0     0     0   5-bitów
    0     0     1   6-bitów
    0     1     0   7-bitów
    0     1     1   8-bitów
    1     0     0   rezerwa
    1     0     1   rezerwa
    1     1     0   rezerwa
    1     1     1   9-bitów
UCPOL - tylko w modzie synchronicznym okreÅ›la polaryzacjÄ™ sygnaÅ‚u zegarowego
        okreÅ›lenie wielkoÅ›ci danej
Wolna pamięć w procesorze
 freeRam()
PRINTF(">> Free RAM is: %d bytes\r\n", freeRam());
int freeRam (void)
{
extern int __heap_start, *__brkval;
int v;
int _res = (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval);
return _res;
}
Data i godzina kompilacji pliku
Kompilacja
const char compile_date[] PROGMEM    = __DATE__;     // Mmm dd yyyy
const char compile_time[] PROGMEM    = __TIME__;     // hh:mm:ss 
PRINTF("Compiled at: %S %S\r\n",compile_date , compile_time );
Stały adres
absolute
StaÅ‚e poÅ‚ożenie danych w pamiÄ™ci
const int stale[] = {1, 2, 3, 4, 5} absolute 0x1234;
Dasej (C) 2024 : 0