Страница 5 из 9

Re: Цифровой одометр на Atmega8

Добавлено: Пн фев 14, 2011 13:17:56
Jack_A
А я вот управляю анодами в дин. индикации так :


Включение - низким уровнем.

Re: Цифровой одометр на Atmega8

Добавлено: Пн фев 14, 2011 13:42:59
yur4ik
Jack_A писал(а):А я вот управляю анодами в дин. индикации так :


Включение - низким уровнем.
а чет странное происходит то вместо нуля 8 высветится то Н высвечивается то тройка но только в зеркальном отображении ппцци так с каждой цифрой :shock: :evil:

Re: Цифровой одометр на Atmega8

Добавлено: Пн фев 14, 2011 15:29:11
s64
yur4ik писал(а):Так это я до такой степени тупой или как? :roll: почему как на рисунке 1 все работает? а если разорвать цепь идущую к R3 то сразу не работает, сток полевика весит просто в воздухе :shock: сделал как на рисунке 2 то выход с коллектора +5В тоесть что и нужно :)
ЗАпись.JPG
Вот вольтметр из проутеса показывает 5В при разорванной цепи +12В
ЗАпись2.JPG

R6 нужно цеплять между эмиттером и базой, иначе от него нет толку.

Re: Цифровой одометр на Atmega8

Добавлено: Пн фев 14, 2011 17:02:41
yur4ik
s64 писал(а):
yur4ik писал(а):Так это я до такой степени тупой или как? :roll: почему как на рисунке 1 все работает? а если разорвать цепь идущую к R3 то сразу не работает, сток полевика весит просто в воздухе :shock: сделал как на рисунке 2 то выход с коллектора +5В тоесть что и нужно :)
ЗАпись.JPG
Вот вольтметр из проутеса показывает 5В при разорванной цепи +12В
ЗАпись2.JPG

R6 нужно цеплять между эмиттером и базой, иначе от него нет толку.
а я его как подцепил? вроде так и подцепил или нужно после R5 цепляться? меня только интересует почему когда разъединяю цепь на R3 то сразу все становится не рабочим?

Re: Цифровой одометр на Atmega8

Добавлено: Пн фев 14, 2011 20:04:55
yur4ik
а как в cvavr с itoa() работать? уж мне так хочется сократить число переменных.
и как будет предоставлен ответ после выполнения этой функции допустим есть число 1234 после первого выполнения переменная в которую нужно выдать ответ будет 1 второго 2 третьего 3 четвертого выполнения 4 так чтоли?

Re: Цифровой одометр на Atmega8

Добавлено: Пн фев 14, 2011 21:29:32
yur4ik
похоже я понял из за чего такая херня :)) в проутосе судя по картинкам возле анодов не бывает такого что тушится сегмент до транзистора все норм есть и красный квадратик и синий моргает а вот после транзистора такого нету следовательно все время горят все сегменты :) и получается каля баля :kill:

Re: Цифровой одометр на Atmega8

Добавлено: Пн фев 14, 2011 21:52:38
yur4ik
нашел тут проект спидометра в проутосе, индикатор с общим анодом. никак больше устройство не работает, а так транзистор в роли инвентора :) сделал как должно быть поставил пнп эмиттер на + коллектор на анод и все пошло тоже самое что у меня.
ЗАпись.JPG
(102.03 КБ) 477 скачиваний
вывод собирать все в железе а потом добавить транзисторы :) т.к я уверен что тот спидометр в железе работает

Re: Цифровой одометр на Atmega8

Добавлено: Вт фев 15, 2011 08:49:14
GP1
Молодец, давай дальше. :beer:
по схеме включения индикаторов рекомендую прочитать http://radiokot.ru/articles/30
так для общего развития :wink:

Re: Цифровой одометр на Atmega8

Добавлено: Вт фев 15, 2011 12:14:43
yur4ik
GP1 писал(а):Молодец, давай дальше. :beer:
по схеме включения индикаторов рекомендую прочитать http://radiokot.ru/articles/30
так для общего развития :wink:
СПасибо :) а вот насчет функции itoa() не подскажешь а?

Re: Цифровой одометр на Atmega8

Добавлено: Вт фев 15, 2011 12:31:32
s64
yur4ik писал(а):
GP1 писал(а):Молодец, давай дальше. :beer:
по схеме включения индикаторов рекомендую прочитать http://radiokot.ru/articles/30
так для общего развития :wink:
СПасибо :) а вот насчет функции itoa() не подскажешь а?
чего там подсказывать? два входных параметра - переменная типа int ( та что будет преобразовываться ) и указатель на массив, куда эта переменная в разложенном на char виде будет складываться. Кстати после преобразования цифры в массиве будут в обратном порядке.

unsigned char s[] =
{
0, 0, 0, 0, 0
};

void itoa( int n, unsigned char s[] );
void reverse( unsigned char s[] );
// ******************************************************************* //
void itoa( int n, unsigned char s[] )
{
int i, sign;

if(( sign = n ) < 0 )
/* çàïèñûâàåì çíàê */
n = - n;
/* äåëàåì n ïîëîæèòåëüíûì ÷èñëîì */
i = 0;
do
{
/* ãåíåðèðóåì öèôðû â îáðàòíîì ïîðÿäêå */
s[i++] = n % 10+'0'; /* áåðåì ñëåäóþùóþ öèôðó */
}

while(( n /= 10 ) > 0 ); /* óäàëÿåì */
if( sign < 0 )
s[i++] = '-';
s = '\0';
reverse( s );

}
// ******************************************************************* //
void reverse( unsigned char s[] )
{
unsigned char i, j;
unsigned char c;

for( i = 0, j = strlen( s ) - 1; i < j; i++, j-- )
{
c = s;
s = s[j];
s[j] = c;
}
}
// ******************************************************************* //

Re: Цифровой одометр на Atmega8

Добавлено: Вт фев 15, 2011 12:48:17
yur4ik
s64 писал(а):
yur4ik писал(а): СПасибо :) а вот насчет функции itoa() не подскажешь а?
чего там подсказывать? два входных параметра - переменная типа int ( та что будет преобразовываться ) и указатель на массив, куда эта переменная в разложенном на char виде будет складываться. Кстати после преобразования цифры в массиве будут в обратном порядке.

unsigned char s[] =
{
0, 0, 0, 0, 0
};

void itoa( int n, unsigned char s[] );
void reverse( unsigned char s[] );
// ******************************************************************* //
void itoa( int n, unsigned char s[] )
{
int i, sign;

if(( sign = n ) < 0 )
/* çàïèñûâàåì çíàê */
n = - n;
/* äåëàåì n ïîëîæèòåëüíûì ÷èñëîì */
i = 0;
do
{
/* ãåíåðèðóåì öèôðû â îáðàòíîì ïîðÿäêå */
s[i++] = n % 10+'0'; /* áåðåì ñëåäóþùóþ öèôðó */
}

while(( n /= 10 ) > 0 ); /* óäàëÿåì */
if( sign < 0 )
s[i++] = '-';
s = '\0';
reverse( s );

}
// ******************************************************************* //
void reverse( unsigned char s[] )
{
unsigned char i, j;
unsigned char c;

for( i = 0, j = strlen( s ) - 1; i < j; i++, j-- )
{
c = s;
s = s[j];
s[j] = c;
}
}
// ******************************************************************* //

спасибо :)

Re: Цифровой одометр на Atmega8

Добавлено: Вт фев 15, 2011 13:23:25
O-LED
с записью по пропаже питания разобрался? если нет, то смотри.
схема.
Изображение
заводишь компаратор. ИОН - встроенный. настраиваешь прерывание по спаду сигнала. в обработчике прерывания записываешь значение в еепром. контроллер питаешь от 5 вольт через диод. после диода - электролит на 1000мкф, его должно с головой хватить на время записи данных в еепром.

Re: Цифровой одометр на Atmega8

Добавлено: Вт фев 15, 2011 14:51:27
yur4ik
O-LED писал(а):с записью по пропаже питания разобрался? если нет, то смотри.
схема.
Изображение
заводишь компаратор. ИОН - встроенный. настраиваешь прерывание по спаду сигнала. в обработчике прерывания записываешь значение в еепром. контроллер питаешь от 5 вольт через диод. после диода - электролит на 1000мкф, его должно с головой хватить на время записи данных в еепром.
да с записью все сделали :)

Re: Цифровой одометр на Atmega8

Добавлено: Вт фев 15, 2011 15:11:18
yur4ik
у меня вопрос при прошивке к мк нужно будет кварц цеплять? или когда мк работает от внутреннего генератора кварц при прошивке не нужен?

Re: Цифровой одометр на Atmega8

Добавлено: Вт фев 15, 2011 15:34:06
ploop
При прошивке - нет. Да и вообще для вашего устройства не нужен он.

Re: Цифровой одометр на Atmega8

Добавлено: Вт фев 15, 2011 15:58:44
yur4ik
ploop писал(а):При прошивке - нет. Да и вообще для вашего устройства не нужен он.
да нет я и не собирался его ставить в готовое устройство, просто хотел узнать при прошивке нужен ли он будет :)
Вопрос исчерпан :)

Re: Цифровой одометр на Atmega8

Добавлено: Ср фев 16, 2011 19:28:30
yur4ik
а разве при написаний программ для мк применять деление, остаток от деления не принято? это я просто интересуюсь а то я тут прочитал не помню уже где, но был этот какой-то форум, один там написал типо применять деление, остаток от деления не принято :(

Re: Цифровой одометр на Atmega8

Добавлено: Ср фев 16, 2011 20:54:21
s64
yur4ik писал(а):а разве при написаний программ для мк применять деление, остаток от деления не принято? это я просто интересуюсь а то я тут прочитал не помню уже где, но был этот какой-то форум, один там написал типо применять деление, остаток от деления не принято :(
:)) конечно можно обойтись сложением и вычитанием, но код от этого не станет меньше и читабельнее.

Re: Цифровой одометр на Atmega8

Добавлено: Ср фев 16, 2011 21:19:29
yur4ik
s64 писал(а):
yur4ik писал(а):а разве при написаний программ для мк применять деление, остаток от деления не принято? это я просто интересуюсь а то я тут прочитал не помню уже где, но был этот какой-то форум, один там написал типо применять деление, остаток от деления не принято :(
:)) конечно можно обойтись сложением и вычитанием, но код от этого не станет меньше и читабельнее.
нет вы меня просто не поняли, я просто на будущее интересовался :)

Re: Цифровой одометр на Atmega8

Добавлено: Ср фев 16, 2011 21:49:53
s64
значит я правильно понял :)))