Технический форум по робототехнике.
=DeaD= » 28 дек 2008, 20:08
У меня вообще возникло 2 вопроса:
1. Стоит ли делать краткий курс по языку Си вообще? До какой степени?
Рассмотреть:
А. Как определяются переменные, какие типы поддерживаются;
Б. Основные команды;
В. Как определяются функции;
Г. Какие макрокоманды есть, типа #include, #define и т.п.
Д. Работа с массивами, указателями, передача информации по указателю?
Е. Использование библиотек типа stdio со всякими printf;
Так?
2. До какой степени стоит описывать особенности использования Си под МК? Описали как с портами работать, как в регистры писать, как процедуры обработки прерывания прописывать, как модификаторы писать, чтобы в память программ прописываться и т.п. вещи и всё?
Сергей » 28 дек 2008, 20:16
Именно по языку Си - я думаю не нужно делать, в интернете полно учебников где все хорошо описано. Я считаю, что нам нужны только примеры на Си для МК, и никаких основ Си не нужно.
=DeaD= » 28 дек 2008, 20:52
Ну тогда как-то так? (накидал эскиз)
- Вложения
-
- такое МК и основы Си для МК.pdf
- (98.44 КиБ) Скачиваний: 52
avr123.nm.ru » 28 дек 2008, 21:01
Я думаю функции МК и на заводе задаются.
Сергей » 28 дек 2008, 21:01
Не, я предлагал вообще не делать вводную часть. Нужны только примеры работы с периферией, а остальное пользователь уже должен знать
=DeaD= » 28 дек 2008, 21:05
avr123.nm.ru писал(а):Я думаю функции МК и на заводе задаются.
Не понял?
Добавлено спустя 52 секунды:2avr123: А, понял про что
ща поправлю, это я из вики нашей взял тупо
avr123.nm.ru » 28 дек 2008, 21:10
У меня такое определение в курсе:
МК это микросхема которая в ответ на внешние электрические сигналы действует в соответствии с
- возможностями заложенными производителем
- электроникой подключенной к МК
- программой которую в него загрузите ВЫ !
И про компаратор... Считать не "из программы", а программа может считать из регистра.
=DeaD= » 28 дек 2008, 22:14
Пофиксил и вроде закончил первую версию документа.
- Вложения
-
- информация о программировании МК AVR на Си.pdf
- (178.04 КиБ) Скачиваний: 47
Сергей » 28 дек 2008, 22:16
Зачем здесь uintX_t ? Тогда указал бы библиотеку в которой они находяца. Лучше просто unsinged char и тп написал
=DeaD= » 28 дек 2008, 22:18
Сергей писал(а):Лучше просто unsinged char и тп написал
Чтобы читатель запоминал char, int, long int, long long int и т.п.?
Нет, можно конечно справедливости ради их указать. Ок, сейчас поправлю и сделаю красивее
.
Сергей » 28 дек 2008, 22:19
И зачем при использовании регистров ты пишешь уже готовые значения типа 0х69 ? напиши по человечески какие биты ставишь REGISTER |= ( 1 << bit ) или там макрос юзай хотябы. Не видно какие биты
=DeaD= писал(а):тобы читатель запоминал char, int, long int, long long int и т.п
Всмысле запоминал? Это основные типы в Си. Все остальные это уже производные и находяца в библиотеках ( которые везде имеют разное название кстати ) к примеру <inttypes.h>
=DeaD= » 28 дек 2008, 22:36
Поправил:
Добавлено спустя 1 минуту 24 секунды:Сергей писал(а):И зачем при использовании регистров ты пишешь уже готовые значения типа 0х69 ? напиши по человечески какие биты ставишь REGISTER |= ( 1 << bit ) или там макрос юзай хотябы. Не видно какие биты
Я не понял, я разве сейчас описываю как работать с конкретными регистрами и какие биты что значат? Я же показываю как в них писать и всё.
Добавлено спустя 10 минут 12 секунд:Тем не менее добавил пример с установкой бита через "REG |= 1 << bit_position;"
- Вложения
-
- информация о программировании МК AVR на Си.pdf
- (179.39 КиБ) Скачиваний: 34
Сергей » 28 дек 2008, 23:08
Ок. И давай писать открывающую скобку блока кода с новой строки ) забыл как стиль называеца
=DeaD= » 28 дек 2008, 23:13
Сергей писал(а):давай писать открывающую скобку блока кода с новой строки ) забыл как стиль называеца
Поправил, но ломает выкладывать везде
со следующей правкой выложу.
avr123.nm.ru » 28 дек 2008, 23:20
раз уж так конкретизировал типы то пиши что
Основы использования Си для программирования МК AVR
в WinAVR