Свежие обсуждения
Микроконтроллеры

Как в Си прочесть байт с ног AT97SAM7S64 и записать и записать его туда?

1 2

mrengineer
где качнуть?
Например, 2-е издание в виде 16-мегабайтного PDF, найдено Яндексом:
http://rapidshare.de/files/9482159/kerigan_rici_yazik_programirovaniya_si_pdf.ra...

Сразу предупреждаю -- про микроконтроллеры там ни слова. Это именно учебник по языку С.

 

mrengineer
Что означает __inline ?
Реально ли из этого всего сварганить указанные выше writeLCD/readLCD?

__inline или нечто похожее по написанию - указание компилятору, что вместо вызова этой функции нужно просто подставить ее код в генерируемую программу. Такие функции работают быстрее (нет затрат на вызов/передачу параметров/возврат), но, соответственно, увеличивают размер кода.
Из именно этого сварганить код, может быть, и не получится, но функции - не бог весть какие сложные (по моим оценкам, минут на 10 писанины вместе с отладкой ). При условии, что изучите то, что caddr посоветовал

 

По поводу одновременной записи 1 и 0 в порт читайте раздел Synchronous Data Output. И вообще отделите вопросы железа от вопросов программирования. Так станет значительно легче на них отвечать.
Далее про "перемешанные порты"... Это Вы весма неудобно развели. ) Насколько мне известно "простого" решения нет.
Тут два варианта: написать ф-ю конвертирования что-то вроде
int ByteToLCD(unsigned char out)
{
int res=0;
if (out & 0x01)
res |= 0xYY;
...
return res;
}
и обратную. Т.к. ЖКИ обычно не очень быстрые устройства и много в них писать не надо - это должно прокатить.
Второй вариант - перекодирование по таблице. Несколько быстрее, но хавает ресурсы. И для обратного преобразования никак не подходит. Т.е. у Вас есть таблица, где для каждого значения на входе ЖКИ, есть состояние портов МК. Т.е. если у Вас ЖКИ подключен по 8 битам, то у вас будет unsigned int Table[256]; Но заполнять такую таблицу - жесть.