roboforum.ru

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

 

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

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

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

Сообщение osc » 20 дек 2009, 23:22

к561ЛА7, аврки как и все статики боятся, так что осторожнее, макетку с работающим контроллером лучше не лапать ))

Вопрос к знатокам CVAVR, как перевести переменную типа char в int ?
Требуется получить байт по uart, перевести в int и записать в массив...
Аватара пользователя
osc
 
Сообщения: 311
Зарегистрирован: 07 сен 2009, 20:06
прог. языки: c, c#
ФИО: Евгений

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

Сообщение avr123.nm.ru » 21 дек 2009, 00:12

вот так:
Код: Выделить всёРазвернуть
((int) переменная другого типа)


Рекомендую почитаь - Язык Си для микроконтроллеров - http://avr123.nm.ru/05.htm
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

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

Сообщение blindman » 21 дек 2009, 09:02

((int) переменная другого типа)

не все так просто. Попробуйте запустить вот такую простую программу.
Код: Выделить всёРазвернуть
#include <stdint.h>
#include <stdio.h>

signed char b1 = 0xFF;
unsigned char b2 = 0xFF;
int main(void)
{
   printf("%d\n", (int)b1);
   printf("%d\n", (int)b2);
   return 0;
}


к561ЛА7, что из себя представляет "байт"? Со знаком? Без знака?

Добавлено спустя 8 минут 8 секунд:
Рекомендую почитать книгу "Язык программирования C", авторы Брайан Керниган и Деннис Ритчи
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

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

Сообщение avr123.nm.ru » 21 дек 2009, 11:23

:lol: :lol: я эту книгу и имел ввиду :D
Вложения
Си для AVR.png
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

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

Сообщение к561ЛА7 » 21 дек 2009, 12:46

Я теперь боюсь вообще эти фьюзы менять.
О любимый мой учитель АВР 123
Надавал ты мне советов, и что вышло, посмотри
Я теперь паяю платы, программирую МК
Заказал я их по почте, у Семенова М.К.
Аватара пользователя
к561ЛА7
 
Сообщения: 337
Зарегистрирован: 08 дек 2009, 19:21
Откуда: Й-Ола

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

Сообщение avr123.nm.ru » 22 дек 2009, 01:08

Просто сделай скриншот как ты хочешь поставить фьюзы и напиши какие настройки хочешь получить и выложи сюда картинку, спроси совета.

Есть даже топик такой с такими картинками fuse AVR.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

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

Сообщение к561ЛА7 » 23 дек 2009, 23:36

Уважаемые трудяги!

Как вызвать обработчик внешненго прерывания ,
например по низкому уровню сигнала на INT0 ?
О любимый мой учитель АВР 123
Надавал ты мне советов, и что вышло, посмотри
Я теперь паяю платы, программирую МК
Заказал я их по почте, у Семенова М.К.
Аватара пользователя
к561ЛА7
 
Сообщения: 337
Зарегистрирован: 08 дек 2009, 19:21
Откуда: Й-Ола

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

Сообщение yak-40 » 23 дек 2009, 23:46

к561ЛА7 писал(а):Как вызвать обработчик внешненго прерывания ,
например по низкому уровню сигнала на INT0 ?

А что, А. В. Евстифеева почитать религия не позволяет :D
- Этот человек - не человек! это робот!
- Как? уже делают?!
- Делают!!!
Аватара пользователя
yak-40
 
Сообщения: 3019
Зарегистрирован: 23 окт 2007, 22:03
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец

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

Сообщение avr123.nm.ru » 24 дек 2009, 00:19

к561ЛА7 писал(а): Как вызвать обработчик внешненго прерывания , например по низкому уровню сигнала на INT0 ?


Прерывания в AVR - принцип работы, примеры объявления прерываний в разных компиляторах, пример для симуляции прерываний от кнопочек - http://avr123.nm.ru/03.htm

Прерывания в AVR удобно настраивать мастером кода CodeVisionAVR :D

Добавлено спустя 1 минуту 41 секунду:
yak-40 писал(а): почитать религия не позволяет :D


Хотябы ПЕРВУЮ страничку топика в котором задается вопрос.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

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

Сообщение к561ЛА7 » 24 дек 2009, 00:24

Религия Ефстивеева читать конечно позволяет. Целыми днями сижу и читаю Евстифеева, датащиты, курс АВР123. Но при усвоении ного материала, как обнаружили ученые , в головном мозге образуются глиелиновые волокна. И пока этот процесс не закончен новому материалу укладываться некуда.
Посему прошу помощи.
О любимый мой учитель АВР 123
Надавал ты мне советов, и что вышло, посмотри
Я теперь паяю платы, программирую МК
Заказал я их по почте, у Семенова М.К.
Аватара пользователя
к561ЛА7
 
Сообщения: 337
Зарегистрирован: 08 дек 2009, 19:21
Откуда: Й-Ола

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

Сообщение yak-40 » 24 дек 2009, 00:39

к561ЛА7 писал(а):Как вызвать обработчик внешненго прерывания ,
например по низкому уровню сигнала на INT0 ?

Ну где то так :)
Код: Выделить всёРазвернуть
// External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
{
// Place your code here

}
void main(void)
{
// External Interrupt(s) initialization
// INT0: On
// INT0 Mode: Low level
// INT1: Off
// INT2: Off
GICR|=0x40;
MCUCR=0x00;
MCUCSR=0x00;
GIFR=0x40;
// Global enable interrupts
#asm("sei")

while (1)
      {
      // Place your code here

      };
}
- Этот человек - не человек! это робот!
- Как? уже делают?!
- Делают!!!
Аватара пользователя
yak-40
 
Сообщения: 3019
Зарегистрирован: 23 окт 2007, 22:03
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец

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

Сообщение statistic » 24 дек 2009, 00:49

в кодВиженАВР есть генератор первоначального кода,там вкладка "external IRQ".По ней настроить быстрей всего.А ,конкретно что не понятно?
Если сама функция ,то так это выглядит в выше упомянутом "кодВиженАВР":
Код: Выделить всёРазвернуть
// External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
{
// Place your code here

}

если настройка то примерно так:
Код: Выделить всёРазвернуть
// External Interrupt(s) initialization
// INT0: On
// INT0 Mode: Low level
// INT1: Off
GICR|=0x40;
MCUCR=0x00;
GIFR=0x40;
// Global enable interrupts
#asm("sei")


Добавлено спустя 35 секунд:
Опередили.
жизнь это компьютерная игра:сценарий так себе, зато графика потрясающая!
удиви печень:выпей воды!
statistic
 
Сообщения: 266
Зарегистрирован: 04 апр 2008, 13:44
Откуда: г.Петрозаводск

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

Сообщение avr123.nm.ru » 24 дек 2009, 00:54

:ROFL: CodevisionAVR - популярен !

Кодом народ так и сыпит, так и сыпит ... прям как дед морозы подарками ! :ROFL:

Действительно, несколько щелчков мышкой и копипасти готовый И ГЛАВНОЕ РАБОЧИЙ код.

ПРОЧИТАЙТЕ ПОЖАЛУЙСТА в даташите ( аль еще где ) - что означает каждая строчка кода созданого мастером !
ЭТО НУЖНО ВАМ !
Тем кто хочет научится и понять.

Перевод на корявый русский - http://translate.ru
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

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

Сообщение statistic » 24 дек 2009, 01:07

на корявый то зачем?у Евстифеева на нормальный переведено.
жизнь это компьютерная игра:сценарий так себе, зато графика потрясающая!
удиви печень:выпей воды!
statistic
 
Сообщения: 266
Зарегистрирован: 04 апр 2008, 13:44
Откуда: г.Петрозаводск

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

Сообщение к561ЛА7 » 25 дек 2009, 14:04

Спасибо, Товариши!
Да будет Ваи м детям вашим полное благосостояние!
И да не будет сие в в веках растрачено!
Вот уже 2й или 3й день бьюсь, программа отрабатыват внешнее прерываниеи и зацикливается в нем.
Задаю первое прерывание по низкому уровню
пишу, например, в обработчике прерывания
PORTD.7 ^= 1;
дак она дергает ногой пока висит низкий уровень, как выслкий - не дергает, а как низкий дергает опять и больше никуда не идет

а хотелось бы чтобы программа дергула один раз и ушла в обратно в основной цикл

или хотябы выполнила один раз и ждала пока новый импульс придет.
Все перечитал ничего не пойму.
Помогите плиз.
О любимый мой учитель АВР 123
Надавал ты мне советов, и что вышло, посмотри
Я теперь паяю платы, программирую МК
Заказал я их по почте, у Семенова М.К.
Аватара пользователя
к561ЛА7
 
Сообщения: 337
Зарегистрирован: 08 дек 2009, 19:21
Откуда: Й-Ола

Пред.След.

Вернуться в Микроконтроллеры

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

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

Mail.ru counter