Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Модератор
Аватара пользователя
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Сообщение МитяРа »

vbif87 писал(а):может намутил с портами:
AVR-ки не знаю, только МК51..
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Реклама
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

Prior to #include -ing the ds1820.h file, you must declare which microcontroller port and port bit are used for communication with the DS1820/DS18S20 through the 1 Wire bus.
Example:

Код: Выделить всё

/* specify the Atmega8515 port and bit used for the 1 Wire bus */
#asm
    .equ __w1_port=0x18 ;PORTB
    .equ __w1_bit=2
#endasm


/* include the DS1820/DS18S20 functions prototypes */
#include <ds1820.h>


Docendo discimus
Контактная информация:
Реклама
Открыл глаза
Сообщения: 67
Зарегистрирован: Пн мар 03, 2008 22:12:47

Сообщение vbif87 »

.equ __w1_bit=2 а что означает здесь 2?
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

Номер бита в порту.
Docendo discimus
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Открыл глаза
Сообщения: 67
Зарегистрирован: Пн мар 03, 2008 22:12:47

Сообщение vbif87 »

Посоветуйте схему генератора на 2 МГц, чтобы восстановить фьюзы на меге.
Реклама
Опытный кот
Сообщения: 812
Зарегистрирован: Ср мар 18, 2009 21:14:33

Сообщение demiurg301 »

Подскажите стоит ли разрывать питание на SD карту(microSD) и какой вообще у неё ток потребления. А то сам контроллер в спяку увожу - там 20 мкА всего жрёт, не хотелось бы сильно повышать потребление.
Реклама
aam
Собутыльник Кота
Аватара пользователя
Сообщения: 2994
Зарегистрирован: Сб фев 20, 2010 14:00:12
Откуда: Москва

Сообщение aam »

Всем привет!
Пишу прогу в CV AVR, моделирую в протеусе. Выходит такая фигня. Когда в тексте программы написал выражение:

Код: Выделить всё

#define K_SENS      317L 
                         
#define H_o         55L    
#define F_0         5767L  
.....
humidity=(((10000000L/TCNT1)*K_SENS)/1000-((10000000L/F_0)*K_SENS)/1000+H_o);
bin_2_seg7(humidity,&disp1,&disp0);
...
Прога начала глючить (на индикаторе вместо влажности выводится 88, а протеус стал выкидывать вот такие сообщения раз в 2 секунды (с таким периодом выполняется это вычисление) см. вложение.

Изображение

Причем как-то не сразу начал глючить. Сначала при определенных значениях выходных сигналов, а вот щас уже постоянно глючит. Если эту строку закоментить, то все остальное работает.
Причем если я на индикатор вывожу совершенно другое значение, даже константу, например:
bin_2_seg7(55,&disp1,&disp0);
а эта строка в коде присутствует, то все равно глючит также.
Проц ATtiny2313, занято флеша около 40%
Вложения
Proteus_msg.GIF
(50.52 КБ) 357 скачиваний
Последний раз редактировалось aam Вс дек 04, 2011 10:53:01, всего редактировалось 4 раза.
aam
Собутыльник Кота
Аватара пользователя
Сообщения: 2994
Зарегистрирован: Сб фев 20, 2010 14:00:12
Откуда: Москва

Сообщение aam »

Ради прикола попробовал написать:

Код: Выделить всё

humidity=1000/TCNT1;
bin_2_seg7(19,&disp1,&disp0);
и

Код: Выделить всё

humidity=1000*TCNT1;
bin_2_seg7(19,&disp1,&disp0);
В первом случае глюк повторяется - на индикаторе 88 и сообщения в окне.
Во-втором случае все норм, хотя переполнение налицо (переменная humidity типа unsigned char)
Что случилось с делением?

Ах, да... Еще не зависимо от работы проги, с этой прогой в окне с переменным вот такая лажа:
Изображение

Люди! Хэлп! Задолбался уже :solder:
aam
Собутыльник Кота
Аватара пользователя
Сообщения: 2994
Зарегистрирован: Сб фев 20, 2010 14:00:12
Откуда: Москва

Сообщение aam »

Люди! Ау!
Собутыльник Кота
Аватара пользователя
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев

Сообщение BCluster »

Насчет последней лажи - если объявить переменные как volatile они будут показаны нормально в протеусе. Почему так - надо думать, возможно компилятор выполняет какие-то оптимизации.

Насчет всего остального - полный код и проект в протеусе предоставьте.
Контактная информация:
aam
Собутыльник Кота
Аватара пользователя
Сообщения: 2994
Зарегистрирован: Сб фев 20, 2010 14:00:12
Откуда: Москва

Сообщение aam »

Кароче, поисследова прогу - глючит операция деления.
Например, написал так:

frequency=5000;
humidity=100000/frequency;
глюка нет. Значение humidity=20;

Пишу:
frequency=5001;
humidity=100000/frequency;
Глючит. Значение humidity=20;

frequency=4999;
humidity=100000/frequency;
Глюка нет. Значение humidity=20;

frequency=4900;
humidity=100000/frequency;
Глючит. Значение humidity=20;

frequency=4001;
humidity=100000/frequency;
Глючит. Значение humidity=24;

frequency=4000;
humidity=100000/frequency;
Глюка нет. Значение humidity=25;

В общем, делит то вроде правильно, а в итоге фигня выходит какая-то... Придется наверно деление самому писать...
aam
Собутыльник Кота
Аватара пользователя
Сообщения: 2994
Зарегистрирован: Сб фев 20, 2010 14:00:12
Откуда: Москва

Сообщение aam »

Кароче с указателями я что-то намудрил...
Был вот такой текст:

Код: Выделить всё

unsigned char seg7_DC(unsigned char digt)
{
 return (PORT&0b10000000)|(~(DC_dig[digt])); 
}
//-----Перевод двоичного числа в двоично-десятичный код--------------
void bin_2_seg7(unsigned char a, unsigned char* a1, unsigned char* a0)
{
 unsigned char i=0;
 while (a>9) 
    { 
     a=a-10;
     i++;
    };
 *a1=seg7_DC(i);
 *a0=seg7_DC(a);
}
Глюк происходил на записях *a1=seg7_DC(i); и *a0=seg7_DC(a);
Щас убрал к черту все указатели и написал тупо

Код: Выделить всё

disp1=seg7_DC(i);
disp0=seg7_DC(a);
через глобальные переменные. вроде не глючит :)
Опытный кот
Аватара пользователя
Сообщения: 745
Зарегистрирован: Сб май 21, 2011 10:37:37
Откуда: Полоцк, Беларусь

Сообщение ankrish »

тупой вопрос( а может и нет), купил программтор AVRProg 910 USB
Изображение
всё запустилось, установил дрова, в общем всё ок.
а теперь главное, как програмировать на нём ATmega8?????(всмысле какие выводы куда тыркать, в основном там всё написано, но в замешательство меня ввело на программаторе два вывода: LED и PWR их нету на ATmege...)
Изображение
{АРХИТЕКТОР}
Контактная информация:
Держит паяльник хвостом
Аватара пользователя
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

Сообщение SubDia »

Для программирования Меги Вам эти сигналы и не нужны. PWR - это питание для тарджет-котроллера (того, который программируете). Если питаете Мегу отдельным источником, можете об этом выводе позабыть. А LED - это, если мне не изменяет память, вывод, генерирующий меандр 1 МГц (для оживления контроллера при неверно зашитых фьюзах выбора источника тактового сигнала). :)
А с остальными все понятно - разъем промаркирован, одноименные выводы у Меги присутствуют.
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
Опытный кот
Аватара пользователя
Сообщения: 745
Зарегистрирован: Сб май 21, 2011 10:37:37
Откуда: Полоцк, Беларусь

Сообщение ankrish »

SubDia писал(а):Для программирования Меги Вам эти сигналы и не нужны. PWR - это питание для тарджет-котроллера (того, который программируете)
типо VCC???
{АРХИТЕКТОР}
Контактная информация:
Держит паяльник хвостом
Аватара пользователя
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

Сообщение SubDia »

Да. И Vcc, и AVcc.
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
Опытный кот
Аватара пользователя
Сообщения: 745
Зарегистрирован: Сб май 21, 2011 10:37:37
Откуда: Полоцк, Беларусь

Сообщение ankrish »

то есть оба подключать, и Vcc, и AVcc?
{АРХИТЕКТОР}
Контактная информация:
Держит паяльник хвостом
Аватара пользователя
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

Сообщение SubDia »

Подключать. AVcc - питание аналоговой части. С АЦП будете работать?
И документацию на контроллер полистайте, там много ответов на вопросы.
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
aam
Собутыльник Кота
Аватара пользователя
Сообщения: 2994
Зарегистрирован: Сб фев 20, 2010 14:00:12
Откуда: Москва

Сообщение aam »

и VCC и AVCC подключать ОБЯЗАТЕЛЬНО!!! Спалите навиК! Только вот если хотите работать с АЦП, то там в ДШ есть схемка фильтра как лучше подключать этот вывод и как его разводить на плате, а если АЦП не юзаете, то просто соедините VCC и AVCC вместе.
Встал на лапы
Сообщения: 123
Зарегистрирован: Вс июл 18, 2010 09:03:01

Сообщение R1d3 »

Добрый вечер вот вылезла такая проблема пытаюсь прошить 16f876а и постоянно выскакивает ошибка то 0001h то 0000h и т.д уже пробывал и другой ставить камень и пробывал другой прошивкой не хочет. Хотя недавно прошил 876 всё нормально. Думал программатор глючит взял 628а так ради интереса проверить, шьет нормально. Программатор extra pic доработанный спаял теже глюки что на простом extra pic
Ответить

Вернуться в «Разные вопросы по МК»