roboforum.ru

Технический форум по робототехнике.
Текущее время: 06 ноя 2024, 00:54

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 2149 ]  На страницу Пред.  1 ... 32, 33, 34, 35, 36, 37, 38 ... 144  След.
Автор Сообщение
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 31 май 2008, 14:20 
Не в сети

Зарегистрирован: 28 май 2008, 21:56
Сообщения: 50
Откуда: планета Земля
прог. языки: Паскаль, Си.
Приветствую.
Недавно начал изучать МК. Пока научился только мигать светодиодами. Использую CodeVisionAVR. Есть такой вопрос:
Как помигать диодом 800раз? Неужели для этого нужно 800 раз прописывать delay_ms? Или нужно использовать цикл? Если не трудно приведите пример кода.

_________________
Лучший способ запомнить что нибудь — постараться это забыть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 31 май 2008, 15:07 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
regenerator писал(а):
Неужели для этого нужно 800 раз прописывать delay_ms? Или нужно использовать цикл?


Читайте плиз ! http://avr123.nm.ru/05.htm "Си для МК" цикл while или for


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 31 май 2008, 15:24 
Не в сети

Зарегистрирован: 28 май 2008, 21:56
Сообщения: 50
Откуда: планета Земля
прог. языки: Паскаль, Си.
avr123.nm.ru писал(а):
Читайте плиз ! http://avr123.nm.ru/05.htm "Си для МК" цикл while или for

Попробовал я как-то раз почитать курс. Значение каждого второго слова мне неизвестно :( . Толку то читать.
Ещё такой вопрос
В паскале:

program 123
var a,b:real;
begin
if a>b then
begin
оператор;
оператор;
end;
end.

А как это в Си будет?

_________________
Лучший способ запомнить что нибудь — постараться это забыть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 31 май 2008, 15:50 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
regenerator писал(а):
avr123.nm.ru писал(а):
Читайте плиз ! http://avr123.nm.ru/05.htm "Си для МК" цикл while или for

Попробовал я как-то раз почитать курс. Значение каждого второго слова мне неизвестно :( . Толку то читать.


Какие КОНКРЕТНО слова вам не известны

Цитата:
http://avr123.nm.ru/05.htm
6) while(){}; условный цикл ( цикл с условием ) - используйте если вам
нужно выполнять какой то код программы пока выполняется (существует,
справедливо, не ноль) некоторое условие-выражение ...


А там:

Цитата:
http://avr123.nm.ru/05.htm
Книга - Язык программирования Си
Брайан В. Керниган, Деннис М. Ритчи

3.5 Циклы while и for
3.6 Цикл do-while


Тоже не известными словами написано ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 31 май 2008, 16:34 
Не в сети

Зарегистрирован: 28 май 2008, 21:56
Сообщения: 50
Откуда: планета Земля
прог. языки: Паскаль, Си.
К примеру так часто встречающеяся слова ШИМ и регистр.
Насчёт цикла - всё вроде понял, спасибо.
Помигать 800 раз:

Код:
#include <90s2313.h>
char i;
void main(void)
{
DDRB=0xff;
for (i=0;i<800;i+=1)
{
PORTB.1=1;
delay_ms(700);
PORTB.1=0;
delay_ms(350);
}
}

Правильно?

_________________
Лучший способ запомнить что нибудь — постараться это забыть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 31 май 2008, 17:38 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
regenerator писал(а):
К примеру так часто встречающеяся слова ШИМ и регистр.


А в начале каждой страницы есть форма: посик GOOGLE по курсу. Вот результат:

Регистр (Register) MK AVR - это набор из 8 бит т.е. 1 байт.
avr123.nm.ru/03.htm

ШИМ - это широтно-импульсная модуляция. т.е. модуляция ...
avr123.nm.ru/z8.htm


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 01 июн 2008, 09:48 
Не в сети

Зарегистрирован: 11 ноя 2007, 20:12
Сообщения: 57
Откуда: урал
regenerator писал(а):
К примеру так часто встречающеяся слова ШИМ и регистр.
Насчёт цикла - всё вроде понял, спасибо.
Помигать 800 раз:

Код:
#include <90s2313.h>
char i;
void main(void)
{
DDRB=0xff;
for (i=0;i<800;i+=1)
{
PORTB.1=1;
delay_ms(700);
PORTB.1=0;
delay_ms(350);
}
}

Правильно?

всё правильно, но желательно для установки бита в значение 1 использовать конструкцию:
PORTB|=(1<<i);
где i номер включаемого бита
А для обнуления бита конутрукцию:
PORTB&=~(1<<i);
это связано с тем, что на язык Си есть строгий стандарт, а запись REGISTER.BIT нестандартная, которую понимает только CodeVision. Тоесть если ты попробуешь скормить свой код другому компилятору он у тебя на первой же записи PORTB.0 выдаст ошибку. А если ты будешь использовать конструкции что я написал - то такой ошибки не будет


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 01 июн 2008, 10:06 
Не в сети
Аватара пользователя

Зарегистрирован: 05 июн 2007, 12:20
Сообщения: 196
Откуда: Киев
прог. языки: C/C++, ASSEMBLER
Цитата:
Код:
...
char i;
...

Правильно?

Не совсем. У тебя значение i не дойдет до 800, только до 255. Вместо char i пиши int i. Почитай про типы переменных и тебе станет ясно. А еще в микроконтроллерах лучше использовать целочисленные типы unsigned ...

Успехов!:)

_________________
Глюк по-немецки означает "счастье"...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 01 июн 2008, 10:31 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Drunya писал(а):
пиши int i. Почитай про типы переменных и тебе станет ясно.


Типы переменных, данных в Си - http://avr123.nm.ru/05a.htm - и их диапазоны в компиляторе.

Цитата:
http://avr123.nm.ru/05a.htm
unsigned int - хранит числа от 0 до 65535 (слово == 2 байта)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 02 июн 2008, 12:26 
Не в сети

Зарегистрирован: 28 май 2008, 21:56
Сообщения: 50
Откуда: планета Земля
прог. языки: Паскаль, Си.
Всем спасибо за ответы! С программой всё ясно.
Начал читать краткий курс. Дошёл до седьмой страницы.
avr123.nm.ru, есть вопросы по прерываниям:
Что может вызвать прерывание? Где их использовать?

_________________
Лучший способ запомнить что нибудь — постараться это забыть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 02 июн 2008, 12:44 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
прерывание может вызвать, то под что это прерывание заточено.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 02 июн 2008, 12:51 
Не в сети
Аватара пользователя

Зарегистрирован: 29 окт 2007, 18:11
Сообщения: 1866
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript
Читать внимательнее надо, regenerator.
1 и 2. Что может вызвать прерывание и где их использовать. Ответ: стр.3;выдержка:
Цитата:
В МК AVR и других, прерывания могут возникать по многим событиям:

- изменение уровня на некоторых ножках МК
- "1" или "0" на некоторых ножках МК
- переполнение таймеров
- насчитывание таймером определенного значения
- завершение АЦП преобразования
- изменение уровня на выходе компаратора
- события в USART
- еще от кучи всего...

В общем снова читайте ДатаШит ...

Для ATmega16 прерывания перечислены
в таблице 18 "Reset ana Interrupt Vectors"
....
Я сделал для вас
проект демонстрирующий механизм прерываний в AVR(далее следует описание)
...
Практическое применение прерываний будет
рассмотрено в задачах - упражнениях курса(далее ссылка).

А воопще avr123 создал прекрасную книгу для начинающих. Первое ощущение - кричащие цвета, однако, уже начиная со 2-ой страницы, "цветастость" помогает заострить внимание на важных вещах. Так что за мануал спасибо товарищу avr123.
P.S. Я извиняюсь, но мне кажется, что "ни кто" пишеться слитно.

_________________
Tomorrow will be. Better


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 02 июн 2008, 13:46 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
MiBBiM писал(а):
Я сделал для вас проект демонстрирующий механизм прерываний в AVR(далее следует описание)

... и архивчик приложен с проектом готовым для симуляции - две кнопочки управляют прерываниями INTx

MiBBiM писал(а):
за мануал спасибо товарищу avr123

Рад если помогло в чём-то.

Добавлено спустя 2 минуты 36 секунд:
regenerator писал(а):
Начал читать краткий курс. Дошёл до седьмой страницы.


Обрати внимание на начало первой страницы курса ! Это важно ИМХО

Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 03 июн 2008, 11:19 
Не в сети

Зарегистрирован: 28 май 2008, 21:56
Сообщения: 50
Откуда: планета Земля
прог. языки: Паскаль, Си.
Всем спасибо за ответы! По программе и по прерываниям понятно. Курс дочитал. Теперь задания выполнять буду. Ещё такой вопрос:
Допустим мне надо инвертировать все биты регистра PORTB. Это будет так:

Код:
void main(void)
{
~PORTB;
}

или так:
Код:
void main(void)
{
!PORTB;
}

?
И ещё: USART это интерфейс RC232?

_________________
Лучший способ запомнить что нибудь — постараться это забыть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 03 июн 2008, 11:25 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
regenerator писал(а):
Всем спасибо за ответы! По программе и по прерываниям понятно. Курс дочитал. Теперь задания выполнять буду. Ещё такой вопрос:
Допустим мне надо инвертировать все биты регистра PORTB. Это будет так:

1) ~PORTB;

2) !PORTB;


Внимательно читай стр. 5 "Си для МК" ВНАЧАЛЕ !

1) Нужен еще оператор присваивания =

2) читай логические операции.

regenerator писал(а):
USART это интерфейс RC232 ?


Нет ! Они могут работать совместно.
Подробно - соединение UART - rs232 - COM порт ПК - http://avr123.nm.ru/z4.htm и /z5.htm


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2149 ]  На страницу Пред.  1 ... 32, 33, 34, 35, 36, 37, 38 ... 144  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO