AVR-ки не знаю, только МК51..vbif87 писал(а):может намутил с портами:
Мелкие вопросы по МК и ПЛИС.
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
- Реклама
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
Номер бита в порту.
Docendo discimus
- Сообщения: 67
- Зарегистрирован: Пн мар 03, 2008 22:12:47
Посоветуйте схему генератора на 2 МГц, чтобы восстановить фьюзы на меге.
- Реклама
- Сообщения: 812
- Зарегистрирован: Ср мар 18, 2009 21:14:33
Подскажите стоит ли разрывать питание на SD карту(microSD) и какой вообще у неё ток потребления. А то сам контроллер в спяку увожу - там 20 мкА всего жрёт, не хотелось бы сильно повышать потребление.
Всем привет!
Пишу прогу в CV AVR, моделирую в протеусе. Выходит такая фигня. Когда в тексте программы написал выражение:
Прога начала глючить (на индикаторе вместо влажности выводится 88, а протеус стал выкидывать вот такие сообщения раз в 2 секунды (с таким периодом выполняется это вычисление) см. вложение.

Причем как-то не сразу начал глючить. Сначала при определенных значениях выходных сигналов, а вот щас уже постоянно глючит. Если эту строку закоментить, то все остальное работает.
Причем если я на индикатор вывожу совершенно другое значение, даже константу, например:
bin_2_seg7(55,&disp1,&disp0);
а эта строка в коде присутствует, то все равно глючит также.
Проц ATtiny2313, занято флеша около 40%
Пишу прогу в 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);
...

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

Люди! Хэлп! Задолбался уже
Код: Выделить всё
humidity=1000/TCNT1;
bin_2_seg7(19,&disp1,&disp0);
Код: Выделить всё
humidity=1000*TCNT1;
bin_2_seg7(19,&disp1,&disp0);Во-втором случае все норм, хотя переполнение налицо (переменная humidity типа unsigned char)
Что случилось с делением?
Ах, да... Еще не зависимо от работы проги, с этой прогой в окне с переменным вот такая лажа:
Люди! Хэлп! Задолбался уже
Насчет последней лажи - если объявить переменные как volatile они будут показаны нормально в протеусе. Почему так - надо думать, возможно компилятор выполняет какие-то оптимизации.
Насчет всего остального - полный код и проект в протеусе предоставьте.
Насчет всего остального - полный код и проект в протеусе предоставьте.
Кароче, поисследова прогу - глючит операция деления.
Например, написал так:
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;
В общем, делит то вроде правильно, а в итоге фигня выходит какая-то... Придется наверно деление самому писать...
Например, написал так:
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;
В общем, делит то вроде правильно, а в итоге фигня выходит какая-то... Придется наверно деление самому писать...
Кароче с указателями я что-то намудрил...
Был вот такой текст:
Глюк происходил на записях *a1=seg7_DC(i); и *a0=seg7_DC(a);
Щас убрал к черту все указатели и написал тупо
через глобальные переменные. вроде не глючит 
Был вот такой текст:
Код: Выделить всё
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);
}Щас убрал к черту все указатели и написал тупо
Код: Выделить всё
disp1=seg7_DC(i);
disp0=seg7_DC(a);тупой вопрос( а может и нет), купил программтор AVRProg 910 USB

всё запустилось, установил дрова, в общем всё ок.
а теперь главное, как програмировать на нём ATmega8?????(всмысле какие выводы куда тыркать, в основном там всё написано, но в замешательство меня ввело на программаторе два вывода: LED и PWR их нету на ATmege...)


всё запустилось, установил дрова, в общем всё ок.
а теперь главное, как програмировать на нём ATmega8?????(всмысле какие выводы куда тыркать, в основном там всё написано, но в замешательство меня ввело на программаторе два вывода: LED и PWR их нету на ATmege...)

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

MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )

типо VCC???SubDia писал(а):Для программирования Меги Вам эти сигналы и не нужны. PWR - это питание для тарджет-котроллера (того, который программируете)
{АРХИТЕКТОР}
Да. И Vcc, и AVcc.
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )

MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )

то есть оба подключать, и Vcc, и AVcc?
{АРХИТЕКТОР}
Подключать. AVcc - питание аналоговой части. С АЦП будете работать?
И документацию на контроллер полистайте, там много ответов на вопросы.
И документацию на контроллер полистайте, там много ответов на вопросы.
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )

MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )

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


