Programowanie progesorów Atmela z wykorzystaniem kompilatora GCC

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;


Fatal error: Uncaught Error: Call to undefined function mysql_result() in /home/server433550/ftp/licznik.php:30 Stack trace: #0 /home/server433550/ftp/allLang.php(410): licznik_all() #1 {main} thrown in /home/server433550/ftp/licznik.php on line 30