roboforum.ru

Технический форум по робототехнике.

МикроКонтроллер AVR начинающим - общие вопросы

Re: МикроКонтроллеры начинающим - общие вопросы

EdGull » 10 июн 2008, 10:17

Не!... Мне на Сях писать религия не позволяет... :-D

Re: МикроКонтроллеры начинающим - общие вопросы

loid » 10 июн 2008, 10:36

Я понимаю что это мелочи, но из них складывается жизнь. :) Подскажите, многие же пишут на СИ. Ощибку говорит: pointless integer comparison with an out of range constant (бессмысленно целое сравнению с вне диапазона постоянная) странно, но когда объявляю переменную и присваиваю к ней значение - ошибку не говорит

Re: МикроКонтроллеры начинающим - общие вопросы

avr123.nm.ru » 10 июн 2008, 10:52

loid писал(а):СИ мало знаю.


Вот "Си для МК" - http://avr123.nm.ru/05.htm

Re: МикроКонтроллеры начинающим - общие вопросы

loid » 10 июн 2008, 11:16

Спасибо, просмотрел ваш курс, но не нашел как использовать символьные переменные в операторе IF

Но нашел вот что
Код: Выделить всёРазвернуть
 char ZNAC;
     int x,y,z;
       :
      if (ZNAC == '-') x = y - z;
      else  if (ZNAC == '+') x = y + z;
            else if (ZNAC == '*') x = y * z;
                  else if (ZNAC == '/') x = y / z;
                        else ...

CodeVisionAVR не принимает этот код

Re: МикроКонтроллеры начинающим - общие вопросы

blindman » 10 июн 2008, 11:19

В одинарных кавычках - символ - один. В двойных - строка. В C строка - это указатель на массив символов.

Код: Выделить всёРазвернуть
char c = 'a'; // символ 'a'
char *s = "a"; // строка "a"


Сравнивать строки нужно с помощью библиотечных функций (strcmp, strcasecmp). Просто сравнение оператором == сравнивает адреса, на которые указывают переменные, а не то, что содержится по этим адресам.

Ты код на форум с клавиатуры пишешь, или копируешь из файла, который компилируешь? Говоришь о сравнении, а в скобках пишешь присвоение. И что за странная конструкция : int char x; ?

когда объявляю переменную и присваиваю к ней значение - ошибку не говорит

Компилятор какой? GCC выдает как минимум warning.

Вообще, в рамках форума объяснить синтаксис и типы данных C вряд ли возможно. Особенно человеку, мозг которого одурманен бэйсиком :D Шутка. loid , не принимай на свой счет. Читай классиков - Кернигана и Ритчи.

Re: МикроКонтроллеры начинающим - общие вопросы

avr123.nm.ru » 10 июн 2008, 11:28

blindman писал(а):Читай классиков - Кернигана и Ритчи.

Я уж ему это советовал (там лежит Керниган и Ритчи - http://avr123.nm.ru/05.htm) - говорит "не помогает".

Добавлено спустя 1 минуту 19 секунд:
loid писал(а):просмотрел ваш курс, но не нашел как использовать символьные переменные в операторе IF

Так же как и любые другие переменные.

loid писал(а):CodeVisionAVR не принимает этот код

Приложите проект в архиве.

Добавлено спустя 4 минуты 49 секунд:
loid писал(а):вот что
Код: Выделить всёРазвернуть
 char ZNAC;
     int x,y,z;
       :
      if (ZNAC == '-') x = y - z;
      else  if (ZNAC == '+') x = y + z;
            else if (ZNAC == '*') x = y * z;
                  else if (ZNAC == '/') x = y / z;
                        else ...



Может лучше оператор switch применить ?

Re: МикроКонтроллеры начинающим - общие вопросы

loid » 10 июн 2008, 11:50

blindman, спасибо всё по нятно разъяснил. :)

Re: МикроКонтроллеры начинающим - общие вопросы

Курсант » 13 июн 2008, 16:15

Подскажите кто- нибудь 100% рабочую схему программатора для PIC, желательно через ком.
Заранее большое спасибо!!!!!!!!!!!!!

Re: МикроКонтроллеры начинающим - общие вопросы

avr123.nm.ru » 13 июн 2008, 17:07

Курсант писал(а):Подскажите кто- нибудь 100% рабочую схему программатора для PIC, желательно через ком.


Зырь ВНИМАТЕЛЬНО на http://avr123.nm.ru и http://avr123.nm.ru/09.htm
Программаторы для PIC и русcкая документация по PIC - там же книги - в них есть ВСЁ !

Re: МикроКонтроллеры начинающим - общие вопросы

rig » 13 июн 2008, 19:35

держи, в нутри фотка автора, мой чуток покрасивше только фотки нет, но есть плата в лайоуте.
программатор собран, работает, настройки не требует.
programmator_PIC.rar
(1015.45 КиБ) Скачиваний: 43

pic.GIF

Re: МикроКонтроллеры начинающим - общие вопросы

avr123.nm.ru » 14 июн 2008, 21:06

Вышла новая версия VMLAB 3.14 http://www.amctools.com/download.htm

ATiny11, ATiny12, ATiny15, ATiny22, AT90S2343, AT90S2323, AT90S1200, AT90S2313, AT90S4433, AT90S4414, AT90S8515, AT90S4434, AT90S8535, ATmega8, ATmega16, ATmega161, ATmega162, ATmega32, ATmega64, ATmega128, ATmega8515, ATmega8535.

А вот и МОЙ кайф !!! Есть модели: ATmega48, ATmega88, ATmega168. Наконец-то.

Re: МикроКонтроллеры начинающим - общие вопросы

Pavel.d.a » 16 июн 2008, 16:11

Здравствуйте. подскажите пожалуйста, как осуществить следующее: частота на любой ножке порта изменяется от 1 до 1000000 герц с шагом 1 герц. Изменение частоты на 1 герц раз в 6 секунд. В течении этих шести секунд скважность при данной частоте меняется от 20 до 80 % (шим) (10% в секунду соответственно).(ATmegaххх, язык Си).
спасибо.

Re: МикроКонтроллеры начинающим - общие вопросы

avr123.nm.ru » 16 июн 2008, 16:23

Pavel.d.a писал(а):изменяется от 1 до 1000000 герц с шагом 1 герц.


69 дней вроде займет процесс.

Re: МикроКонтроллеры начинающим - общие вопросы

Myp » 16 июн 2008, 17:42

ага
с половиной
нужно позаботиться о хорошем бесперебойном питании


раз меняется скважность то видимо без шима не обойтись...

Re: МикроКонтроллеры начинающим - общие вопросы

Pavel.d.a » 16 июн 2008, 18:18

Если быть совсем точным то 69 дней 10 часов и 40 минут. Если все получится то такие затраты во времени оправданы. Кстати нужно будет еще один канал, но сдвинутый на 180 по фазе. Нужно это для управления инвертором, на который будет подключена катушка индуктивности. Я в микроконтроллерах новичек, поэтому прошу Вашей помощи. Советовали сделать на таймере, как шим реализовывать при использовании таймера понятно, но как задавать частоту тактирования таймера с шагом 1 герц я не представляю. Насколько я понял частоту тактирования можно изменять с помощью предделителя, это отношение частоты кварцевого резонатора к 1, 8, 32, 64, 128, 256, 1024 (предустановка регистра TССRnВ), но это не удовлетворяем условию. Я могу ошибаться. Разъясните пожалуйста.


Rambler\'s Top100 Mail.ru counter