AVR123:Глава 5 — различия между версиями

Материал из roboforum.ru Wiki
Перейти к: навигация, поиск
(добавил категорию)
(дополнение)
Строка 1: Строка 1:
 
[[Категория:Avr123]]
 
[[Категория:Avr123]]
 
[[AVR123 | Вернуться на главную]]
 
[[AVR123 | Вернуться на главную]]
<br>По умолчанию компилятор CVAVR.
+
 
 +
Язык Си для AVR. 
 +
 
 +
Как раз то, что необходимо и достаточно
 +
для микроконтроллеров.
 +
 
 +
По умолчанию компилятор CVAVR
  
 
В других компиляторах могут быть незначительные отклонения, нюансы не связанные с языком Си, а обусловленные стараниями и предпочтениями разработчиков этих компиляторов.
 
В других компиляторах могут быть незначительные отклонения, нюансы не связанные с языком Си, а обусловленные стараниями и предпочтениями разработчиков этих компиляторов.
Строка 7: Строка 13:
 
'''Минимальная программа на Си''' может быть такой:
 
'''Минимальная программа на Си''' может быть такой:
 
<source lang="c">main(){}</source>
 
<source lang="c">main(){}</source>
Эта программа не делает ни чего полезного - но это уже программа и она показывает что в программе на языке Си - должна быть главная функция main - обязательно !
+
Эта программа не делает ни чего полезного — но это уже программа и она показывает что в программе на языке Си — должна быть главная функция main — обязательно !
 +
 
 +
Скачайте и Распечатайте.[http://avr123.nm.ru/csyntax.pdf Памятка Си для МК на ОДНОЙ странице.]
 +
 
 +
Рассказывая про МК я говорил вам, что:
 +
 
 +
 
 +
Задача программы МК:
 +
* читать числа из регистров и памяти МК,
 +
* делать что-то с числами, данными      и
 +
* записывать числа в регистры и память.
 +
 
 +
Только так программа может общаться с МК.
 +
 
 +
 
 +
== Как это делать на языке Си ==
 +
 
 +
'''Регистры МК''' ( ''регистры'' - это ячейки-байты в памяти МК AVR ) в программе на Си имеют названия как и в ДШ и так как числа в большинстве из них можно менять - для программы регистры являются по сути переменными.
 +
 
 +
'''Переменная''' - это набор ячеек в памяти в которых можно хранить число или числа и менять их. Переменная имеет адрес и имя.
 +
 
 +
'''Константа''' - это как переменная но менять содержимое нельзя.
 +
 
 +
Подробней о переменных и константах написано ниже.
 +
 
 +
* Чтобы поместить число в переменную (в регистр)  в  языке Си  есть оператор присваивания
 +
это знак "=" ( называемый в математике "равно" )   
 +
 
 +
{{InfoBlock|В Си знак равно НЕ означает равенство!|Запомните!}}   
 +
 
 +
"="    в Си означает  вычислить результат того что справа от оператора присваивания  и поместить этот результат в переменную находящуюся левее  оператора присваивания.
 +
<source lang="c">
 +
PORTB = PINB + 34;/* Эта строчка на Си означает взять (прочитать, считать)
 +
                    значение переменной (регистра) PINB, затем прибавить
 +
                    к нему число 34 и поместить результат в переменную PORTB */
 +
 
 +
ПЕРЕМЕННАЯ = PINC; /* Эта строчка на Си означает взять (прочитать, считать)
 +
                      значение переменной (регистра) PINC и поместить результат
 +
                      в переменную с именем ПЕРЕМЕННАЯ */
 +
</source>
 +
Чтобы  в  Си взять (прочитать) число из регистра или значение переменной нужно написать его название НЕ непосредственно с лева от  оператора присваивания !

Версия 15:56, 26 сентября 2009

Вернуться на главную

Язык Си для AVR.

Как раз то, что необходимо и достаточно для микроконтроллеров.

По умолчанию компилятор CVAVR

В других компиляторах могут быть незначительные отклонения, нюансы не связанные с языком Си, а обусловленные стараниями и предпочтениями разработчиков этих компиляторов.

Минимальная программа на Си может быть такой: <source lang="c">main(){}</source> Эта программа не делает ни чего полезного — но это уже программа и она показывает что в программе на языке Си — должна быть главная функция main — обязательно !

Скачайте и Распечатайте.Памятка Си для МК на ОДНОЙ странице.

Рассказывая про МК я говорил вам, что:


Задача программы МК:

  • читать числа из регистров и памяти МК,
  • делать что-то с числами, данными и
  • записывать числа в регистры и память.

Только так программа может общаться с МК.


Как это делать на языке Си

Регистры МК ( регистры - это ячейки-байты в памяти МК AVR ) в программе на Си имеют названия как и в ДШ и так как числа в большинстве из них можно менять - для программы регистры являются по сути переменными.

Переменная - это набор ячеек в памяти в которых можно хранить число или числа и менять их. Переменная имеет адрес и имя.

Константа - это как переменная но менять содержимое нельзя.

Подробней о переменных и константах написано ниже.

  • Чтобы поместить число в переменную (в регистр) в языке Си есть оператор присваивания

это знак "=" ( называемый в математике "равно" )

Информация
Запомните!

В Си знак равно НЕ означает равенство!



"=" в Си означает вычислить результат того что справа от оператора присваивания и поместить этот результат в переменную находящуюся левее оператора присваивания. <source lang="c"> PORTB = PINB + 34;/* Эта строчка на Си означает взять (прочитать, считать)

                    значение переменной (регистра) PINB, затем прибавить 
                    к нему число 34 и поместить результат в переменную PORTB */

ПЕРЕМЕННАЯ = PINC; /* Эта строчка на Си означает взять (прочитать, считать)

                     значение переменной (регистра) PINC и поместить результат 
                     в переменную с именем ПЕРЕМЕННАЯ */

</source> Чтобы в Си взять (прочитать) число из регистра или значение переменной нужно написать его название НЕ непосредственно с лева от оператора присваивания !