AVR123:Глава 5 1
Язык Си - дополнительная литература
Очень доступно о Си рассказано здесь:
Андрей Богатырев. Руководство полного идиота по программированию на языке Си
обязательно используйте его при работе! и заглядывайте в него.
Статья "Си без Си" уважаемого и очень опытного микроконтроллерщика - ник: Bill
h--p://www.caxapa.ru/story/bill_1.html
Вот её первый абзац - цитата:
" Использование алгоритмических языков высокого уровня (ЯВУ) и, в частности, Си для программирования микроконтроллеров, несомненно, дает ряд преимуществ по сравнению с языком ассемблера. Основными из них являются:
- высокая скорость разработки программ;
- легкость отладки разрабатываемых программ;
- независимость программного кода от типа контроллера и, соответственно, более или менее простой перенос программ на разные платформы;
- простота сопровождения программ;
Исходные тексты на языке Си имеют сравнительно небольшие размеры, сами программы, как правило, хорошо структурированы и понятны. "
Не надо учить книжки наизусть!
Скачайте чтобы иметь их "под рукой".
Повторю
Отличное руководство по Си для AVR это HELP в компиляторе CodeVisionAVR
Читайте его и ищите в нем интересующее вас по ключевым словам
ОГЛАВЛЕНИЕ
1.1.5. Использование комментариев в тексте программы
1.2. ТИПЫ ДАННЫХ И ИХ ОБ ЯВЛЕНИЕ
1.2.5. Переменные перечислимого типа
1.2.10. Переменные с изменяемой структурой
1.2.11. Определение объектов и типов
1.3.2. Преобразования при вычислении выражений
1.3.3. Операции отрицания и дополнения
1.3.4. Операции разадресации и адреса
1.3.6. Мультипликативные операции
Я обнаружил ошибку в разделе 1.3.10 | |
правильно вот так: Операция логического И вырабатывает значение 1 если оба операнда имеют НЕ нулевые значения. |
1.3.11. Операция последовательного вычисления
1.3.13. Операции увеличения и уменьшения
1.3.15. Составное присваивание
1.3.16. Приоритеты операций и порядок вычислений
1.5.1. Определение и вызов функций
1.5.2. Вызов функции с переменным числом параметров
1.5.3. Передача параметров функции main
1.6. СТРУКТУРА ПРОГРАММЫ И КЛАССЫ ПАМЯТИ
1.6.1. Исходные файлы и объявление переменных
1.6.3. Время жизни и область видимости программных объектов
1.6.4. Инициализация глобальных и локальных переменных
1.7. УКАЗАТЕЛИ И АДРЕСНАЯ АРИФМЕТИКА
1.7.1. Методы доступа к элементам массивов
1.7.2. Указатели на многомерные массивы
1.7.5. Динамическое размещение массивов
2. ОРГАНИЗАЦИЯ СПИСКОВ И ИХ ОБРАБОТКА
2.1.1. Методы организации и хранения линейных списков
2.1.2. Операции со списками при последовательном хранении
2.1.3. Операции со списками при связном хранении
2.1.4. Организация двусвязных списков
2.1.6. Сжатое и индексное хранение линейных списков
2.2. СОРТИРОВКА И СЛИЯНИЕ СПИСКОВ
2.2.3. Сортировка посредством выбора
2.2.5. Сортировка списков путем слияния
2.2.6. Быстрая и распределяющая сортировки
2.3. ПОИСК И ВЫБОР В ЛИНЕЙНЫХ СПИСКАХ
2.3.4. Методы вычисления адреса
2.3.5. Выбор в линейных списках
Вообще сайт СитФорум по программированию ПК рулит!
Оглавление
Список ошибок, допущенных в книгеhr
1.2 Переменные и арифметические выражения
1.8 Аргументы. Вызов по значению
1.10 Внешние переменные и область видимости
Глава 2. Типы, операторы и выражения
2.6 Операторы отношения и логические операторы
2.8 Операторы инкремента и декремента
2.10 Операторы и выражения присваивания
2.12 Приоритет и очередность вычислений
3.7 Инструкции break и continue
Глава 4. Функции и структура программы
4.1 Основные сведения о функциях
4.2 Функции, возвращающие нецелые значения
5.2 Указатели и аргументы функций
5.5 Символьные указатели функции
5.6 Массивы указателей, указатели на указатели
5.8 Инициализация массивов указателей
5.9 Указатели против многомерных массивов
5.10 Аргументы командной строки
6.1 Основные сведения о структурах
6.5 Структуры со ссылками на себя
7.3 Списки аргументов переменной длины
7.6 Управление ошибками (stderr и exit)
7.8 Другие библиотечные функции
7.8.2 Анализ класса символов и преобразование символов
7.8.4 Исполнение команд операционной системы
7.8.7 Генератор случайных чисел
Глава 8. Интерфейс с системой UNIX
8.2 Нижний уровень ввода-вывода (read и write)
8.3 Системные вызовы open, creat, close, unlink
8.4 Произвольный доступ (lseek)
8.5 Пример. Реализация функций fopen и getc
8.7 Пример. Распределитель памяти
Приложение A. Справочное руководство
А2.5.3. Константы с плавающей точкой
A2.5.4. Константы-перечисления
A4. Что обозначают идентификаторы
A6.2. Целочисленные преобразования
A6.3. Целые и числа с плавающей точкой
А6.5. Арифметические преобразования
A7.3.1. Обращение к элементам массива
A7.3.3. Обращение к структурам
A7.3.4. Постфиксные операторы инкремента и декремента
А7.4.1. Префиксные операторы инкремента и
A7.4.2. Оператор получения адреса
A7.4.3. Оператор косвенного доступа
A7.4.5. Оператор унарный минус
A7.4.6. Оператор побитового отрицания
A7.4.7. Оператор логического отрицания
A7.4.8. Оператор определения размера sizeof
A7.5. Оператор приведения типа
A7.6. Мультипликативные операторы
A7.12. Оператор побитового исключающего ИЛИ
A7.13. Оператор побитового ИЛИ
A7.15. Оператор логического ИЛИ
A8.1. Спецификаторы класса памяти
A8.3. Объявления структур и объединений
A11. Область видимости и связи
A11.1. Лексическая область видимости
A12.1. Трехзнаковые последовательности
А12.3. Макроопределение и макрорасширение
A12.7. Генерация сообщения об ошибке
A12.10. Заранее определенные имена
Приложение B. Стандартная библиотека
B1.4. Функции ввода-вывода символов
B1.5. Функции прямого ввода-вывода
B1.6. Функции позиционирования файла
B1.7. Функции обработки ошибок
B2. Проверки класса символа: ctype.
B3. Функции, оперирующие со строками: string.
B4. Математические функции: math.
B5. Функции общего назначения: stdlib.
B7. Списки аргументов переменной длины: stdarg.
B10. Функции даты и времени: time.
B11. Зависящие от реализации пределы: limits.и float.