Цитата(algidim @ May 5 2008, 23:22)

Да уж, ну и книжка, полное г.
Угу. Посмотрел "исходники"
- комментарии в стиле "A" - это буква, "1" это цифра, но на русском

;
- язык "C" в абсолютно кондовом варианте - этакая помесь Бэйсика с Паскалем - получается что-то в стиле "моя твоя понимай мал мал однако". Ну нельзя такое в "букварях" писать

;
Код
//Функция передачи строки через USART0
void write_str_USART0(char *buff)
{
/* zlt[
Здесь что Basic?
U8 i = 0x0;
while(buff[i] != '\0')
{
write_char_USART0(buff[i]);
i++;
}
]zlt */
while( *buff )
write_char_USART0( *buff++ );
}
- встречается дурнейший стиль с непоимиенованными константами;
- явные перестраховки и глупости с volatile переменными(регистрами) показывающие полное не владение вопросом;
Код
// функция - обработчик прерывания от timer0
void timer0_c_irq_handler(void)
{
/*zlt[ Комментировать просто нечего - "исходник" сам за себя говорит. Мрак.
AT91PS_TC TC_pt = AT91C_BASE_TC0;
unsigned int dummy;
//* определение состояния прерывания
dummy = TC_pt->TC_SR;
dummy = dummy; //чтобы не генерировалось замечание о неиспольз переменной
//* действия при прерывании
//
//
]zlt*/
AT91C_BASE_TC0->TC_SR; //zlt[] Просто одна строка.
}
- явные глупости с наложением масок где попало, например 0x1FF на восьмибитовую переменную.
- стандартная дурь с 'задержками'.
- все исходники и проекты продублированы дважды RAM/Flash- уровень владения аВТОРОМ сей поделки IAR-овской IDE, то, что называтся налицо

- за обильное использование 8-бит переменных на 32-бит ARM платформе и безумные глобальные переменные вообще надо гениталии отрывать;
- программирование в стиле "copy-paste" ( напрмер 4 кнопки - 4 подпрограммы ) это ведь даже не детский сад

- большинство исходников просто бездумно надерганные куски сваленные под стук в бубен в какой-нибудь общий файл.
Код
//Обработчик прерываний от USART0
void Usart_c_irq_handler(void)
{
/*zlt[ Нет слов, даже матерных,что за хрень здесь наворочена.
U8 status;
//получение регистра состояния USART0 и номера активного прерывания
status = AT91C_BASE_US0 -> US_CSR;
status &= AT91C_BASE_US0 -> US_IMR;
//если это прерывание при приеме символа USART0, то обработать его
if (status & AT91C_US_RXRDY)
{
//индикация принятого через USART0 символа
lcd_pro_data(read_char_USART0(),15);
}
]zlt*/
//индикация принятого через USART0 символа
lcd_pro_data( AT91C_BASE_US0->US_RHR, 15 ); //zlt[]
// Вызов дивной функции с задержками из обработчика прерывания оставим на совести аВТОРА,
//как и магичесое число 15
}
все это ровно за 10 минут рассмотрения сего "шедевра".
Такое "творчество" просто вредно читать начинающим.