roboforum.ru

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

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

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

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

Сообщение greyder » 16 июн 2010, 22:22

boez спасибо большое, про программную реализацию протокола я как-то и забыл. К хорошему быстро привыкаешь. Скорость надежного прохождения информации по такой сети я и хотел посмотреть.
greyder
 
Сообщения: 23
Зарегистрирован: 31 мар 2010, 16:15

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

Сообщение ADonis » 18 июн 2010, 06:25

То ли лыжи не едут, то ли я не такой, НО:
Mega16, заводские фьюзы, внешнего кварца нет, ПортС, биты 5..2 не могу рулить! 7-6 и 1-0 дрыгаются нормально! Уже дошло до того, что отключил ВСЕ, подключены только ноги 10 (GND), 11(VCC) и 22-24 (биты 0-2 порта С соотв),
PortC=255;
все, больше кода нету.
Есть два МК, оба новые, на обоих такой косяк. Что это? :shock:
Может быть в заводском состоянии что-то отключено, что портС переводится в другое состояние?
Уже несколько дней пытаюсь понять, где косяк... Что я упустил?
В гугле есть все! Даже то, чего еще нет!

Не спорь с холостяком о макаронах!
Аватара пользователя
ADonis
 
Сообщения: 106
Зарегистрирован: 30 дек 2009, 08:16
Откуда: Омск
Skype: hedgehoguse

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

Сообщение blindman » 18 июн 2010, 06:35

Классические грабли :) На этих ногах JTAG, который по умолчанию включен. Отключить фьюзами.
Проект [[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 начинающим - общие вопросы

Сообщение ADonis » 18 июн 2010, 06:36

Млин! Спасибо ))
В гугле есть все! Даже то, чего еще нет!

Не спорь с холостяком о макаронах!
Аватара пользователя
ADonis
 
Сообщения: 106
Зарегистрирован: 30 дек 2009, 08:16
Откуда: Омск
Skype: hedgehoguse

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

Сообщение avr123.nm.ru » 18 июн 2010, 07:38

JTAG можно выключить програмно - "Устройство микроконтроллеров AVR" http://proavr.narod.ru/02.htm - тогда в случае надобности по нему можно будет "достучаться" до AVR.
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

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

Сообщение executer » 22 июн 2010, 20:41

немного не по теме - вопрос по MS Visual C++
Проблема с преобразованием типов данных. Код
Код: Выделить всёРазвернуть
unsigned char UC=255;
int I=UC;
print I;

выдает "-128" - т.е. старший бит байта UC воспринимает как знак. крутил-вертел (int), (u_char) - никак не получается нормально преобразовать, хотя по логике преффикс (u_char) перед UC должен был бы помочь.
Аватара пользователя
executer
 
Сообщения: 784
Зарегистрирован: 30 янв 2009, 01:24
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел

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

Сообщение Angel71 » 22 июн 2010, 20:57

:oops: а дебаг что говорит? у меня I=255 показывает (студия 2010, проект - c++, win32 console)
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

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

Сообщение avr123.nm.ru » 22 июн 2010, 22:23

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

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

Сообщение executer » 23 июн 2010, 09:53

Извиняюсь - запутался с типами. То что я написал - действительно работает. Проблема вот с этим:
Код: Выделить всёРазвернуть
char A;
char B;

А=100;
B=250;

int test = (u_int)A-(u_int)B;


test оказуется равным 106 (т.к. В содержит знаковый байт -6 = беззнаковый 250).

вот как так сделать чтоб test равнялся -150? (но без вызова функции с IF-ом)?
Аватара пользователя
executer
 
Сообщения: 784
Зарегистрирован: 30 янв 2009, 01:24
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел

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

Сообщение galex1981 » 23 июн 2010, 09:56

Может быть чтобы test равнялся -150?
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

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

Сообщение executer » 23 июн 2010, 09:56

Хм, опять заработало. С такой строкой
int test = (u_char)A-(u_char)B;
Да, galex, после этого test = -150 :oops:
Вроде ж пробовал раньше. Вопрос снят. Всем спасибо!
Аватара пользователя
executer
 
Сообщения: 784
Зарегистрирован: 30 янв 2009, 01:24
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел

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

Сообщение osc » 28 июн 2010, 20:56

Не выполняется прерывание по переполнению таймера 2 в меге 88, проверяю установкой в прерывании 1 на PD3.
Код инициализации взял из CodeWizard:
Код: Выделить всёРазвернуть
#include <mega88.h>

interrupt [TIM2_OVF] void timer2_ovf_isr(void)
{
PORTD.3=1;
}

void main (void)
{
DDRD.3=1;
ASSR=0x00;
TCCR2A=0x00;
TCCR2B=0x06;
TCNT2=0x00;
OCR2A=0x00;
OCR2B=0x00;
#asm("sei");
while(1);
}

Подскажите, где ошибка?
Аватара пользователя
osc
 
Сообщения: 333
Зарегистрирован: 07 сен 2009, 20:06
прог. языки: c, c#
ФИО: Евгений

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

Сообщение Michael_K » 28 июн 2010, 21:18

А TIMSK2 кто будет инициализировать?
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

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

Сообщение avr123.nm.ru » 28 июн 2010, 22:46

osc писал(а):Код инициализации взял из CodeWizard

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

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

Сообщение Skyline » 01 июл 2010, 11:07

Надеюсь что с темой не ошибся и по-этому спрошу здесь. Помогите подправить прогу.В общем суть программки в том чтобы следить за состоянием каналов ИК-бампера. Сначала все время едем в перед и параллельно следим, если высокий логический уровень то продолжаем ехать вперед, если низкий то останавливаемся и отъезжаем назад, со вторым каналом тоже самое. Вопрос в том, что не пойму как сделать чтобы выполнялись оба условия сразу, а не в порядке написания проги? Код прилагаю, прога конечно корявая, но что делать только учусь.
Код: Выделить всёРазвернуть
$regfile = "m16def.dat"
$crystal = 16000000

Config Pina.0 = Output : Fr Alias Porta.0
Config Pina.1 = Output : Br Alias Porta.1
Config Pina.2 = Output : Bl Alias Porta.2
Config Pina.3 = Output : Fl Alias Porta.3
Config Pina.4 = Input : B1 Alias Porta. 4
Config Pina.5 = Input : B2 Alias Porta.5

Do

Gosub Вперед

If B1 = 1 Then
Gosub Вперед_вправо
Else
Gosub Назад_вправо
Wait 3
End If

If B2 = 1 Then
Gosub Вперед_влево
Else
Gosub Назад_влево
Wait 3
End If

Loop

+ Включение комбинации моторов для движения в заданном направлении.
Аватара пользователя
Skyline
 
Сообщения: 278
Зарегистрирован: 12 май 2010, 13:30
Откуда: Уральск-Самара
Skype: sky-jap
прог. языки: Bascom AVR Basic
ФИО: Полулях Сергей Валерьевич

Пред.След.

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

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

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