Страница 1 из 2

ATtyni 2313 , MikroPascal. и семисегментный индикатор -??

Добавлено: Ср апр 27, 2011 19:20:01
MrNEO
Помогите с MikroPascal. ATtyni 2313 ...
Не подскажите есть ли какие библиотеки или функции готовые в паскале для семисегментного индикатора ?
и зачем в нем вообще нужна подпрога Seven Segment Editor..
Я никак не пойму как пользоваться ей (0x80, 0x00, 0x79 и т.д.)..

с семисегментным индикатором - с общим анодом...
возмож но ли это :roll:
:roll:

может кто видел исходники где нить ... :shock: :shock:

Re: ATtyni 2313 , MikroPascal. и семисегментный индикатор

Добавлено: Чт апр 28, 2011 20:23:36
MrNEO
Видимо это невозможно что ли ....

Re: ATtyni 2313 , MikroPascal. и семисегментный индикатор

Добавлено: Чт апр 28, 2011 21:25:33
Alex Medvedev
Да ни каких там функций и готовых библиотек не надо! Просто тупо выводишь в порт то что должно гореть на индикаторе и все. Seven Segment Editor это прога которая подсказывает что нужно записать в порт чтоб получить созданый тобой символ в это проге. Давай начнем по порядку. Сколько разрядов у твоего индикатора и что ты хочешь получить в итоге ?

Re: ATtyni 2313 , MikroPascal. и семисегментный индикатор

Добавлено: Чт апр 28, 2011 23:07:12
MrNEO
а что тупо
PortB.1:=1 или 0 не катит разве.. ?

Re: ATtyni 2313 , MikroPascal. и семисегментный индикатор

Добавлено: Пт апр 29, 2011 16:24:46
Alex Medvedev
Короче вот тебе. Не поленился

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

program led;
const Digits:array[10] of byte =(0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90);
var i:byte;
begin
  DDRB:=0xFF;
  i:=0;
  While(true) do
    begin
       PORTB:=Digits[i];
       inc(i);
       if i=10 then i:=0;
       delay_ms(400);
    end;
end.


123.png
(15.47 КБ) 615 скачиваний

Re: ATtyni 2313 , MikroPascal. и семисегментный индикатор

Добавлено: Пт апр 29, 2011 17:28:31
MrNEO
уаааааууууууу !!! спасибо огромное --- просто спас ... ))))

Re: ATtyni 2313 , MikroPascal. и семисегментный индикатор

Добавлено: Вт май 03, 2011 21:57:06
MrNEO
а не подскажите как использовать ByteToStr ?
(znak:=142;)

procedure ZN(znak,sec:byte;);
var symb,led:array[3] of char;
Begin
ByteToStr(znak, symb);

правильно ?

а возвращает
symb[1] = 0
symb[2] = 0
symb[3] = 0

Re: ATtyni 2313 , MikroPascal. и семисегментный индикатор

Добавлено: Вт май 03, 2011 22:03:59
Alex Medvedev
Всё правильно. у меня кстати нормально работает

Re: ATtyni 2313 , MikroPascal. и семисегментный индикатор

Добавлено: Ср май 04, 2011 16:21:37
MrNEO
че за глюк ...

не скинешь этот проект ?

Re: ATtyni 2313 , MikroPascal. и семисегментный индикатор

Добавлено: Ср май 04, 2011 16:50:42
Alex Medvedev
Да скину конечно

Re: ATtyni 2313 , MikroPascal. и семисегментный индикатор

Добавлено: Ср май 04, 2011 17:12:56
MrNEO
Спасибо

Re: ATtyni 2313 , MikroPascal. и семисегментный индикатор

Добавлено: Ср май 04, 2011 17:20:33
MrNEO
а у меня во что показало ... (

Re: ATtyni 2313 , MikroPascal. и семисегментный индикатор

Добавлено: Ср май 04, 2011 17:21:26
MrNEO
толи винда ... толи pascal тупит... скорее всего первое ...
:))) :)))

Re: ATtyni 2313 , MikroPascal. и семисегментный индикатор

Добавлено: Ср май 04, 2011 17:23:14
Alex Medvedev
Так у тебя программа еще до строчки ByteToStr не дошла. F8 нажми пару раз в режиме отладки.

Re: ATtyni 2313 , MikroPascal. и семисегментный индикатор

Добавлено: Ср май 04, 2011 17:26:13
MrNEO
:oops: :oops: ой да ...
все в шоколаде ...
сработало ... сейчас дальше копать буду ...

Re: ATtyni 2313 , MikroPascal. и семисегментный индикатор

Добавлено: Ср май 04, 2011 17:41:56
MrNEO
Увеличил размер массива и в итоге получил что -


вот косяк

Re: ATtyni 2313 , MikroPascal. и семисегментный индикатор

Добавлено: Ср май 04, 2011 17:44:43
Alex Medvedev
Какой смысл увеличивать размер массива? Функция ByteToStr преобразует байт в строку. В одном байте можно хранить числа от 0 до 255. Это значит что максимальная длинна строки будет три символа.

Re: ATtyni 2313 , MikroPascal. и семисегментный индикатор

Добавлено: Ср май 04, 2011 17:52:52
MrNEO
я в том смысле, что в первые три - записались ' апостроф или кавычки - вообщем пустота...

Re: ATtyni 2313 , MikroPascal. и семисегментный индикатор

Добавлено: Ср май 04, 2011 17:55:21
Alex Medvedev
А что там должно быть? Я считаю что эта функция рассчитана на то что в нее будет передаваться строка из трёх символов. Отсюда такие непонятные вещи. Хотя наверное это просто паскаль так строки хранит.

Re: ATtyni 2313 , MikroPascal. и семисегментный индикатор

Добавлено: Ср май 04, 2011 17:57:33
MrNEO
так там было 3-х значное число...