Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.03.2013, 16:29   #1
pet-rovich
Пользователь
 
Регистрация: 02.03.2013
Сообщений: 10
По умолчанию Софт для програматора с интерфейсом LPT (Delphi)

Хотелось бы разобраться с написанием софта через LPT, для более лучшего его понимания. Изучил статью http://www.programmersforum.ru/showt...606#post381606 спасибо автору. Думаю что эта статья была бы полезна многим новичкам. Но если великие гуру посчитают эту тему ненужной, то хотя бы ткните ссылочкой где можно этому научится. Если всё таки тема приживётся, то я думаю начать лучше с микросхемы памяти 24с02, для которой возмём простенькое железо с PonyProg
Изображения
Тип файла: png easyI2Cbus_mini.PNG (4.6 Кб, 102 просмотров)

Последний раз редактировалось pet-rovich; 10.03.2013 в 16:54.
pet-rovich вне форума Ответить с цитированием
Старый 12.03.2013, 18:12   #2
pet-rovich
Пользователь
 
Регистрация: 02.03.2013
Сообщений: 10
По умолчанию

Да.... А в ответ тишина. Вот и я уже месяц гуглю и не чего вразумительного найти не могу. Складывается впечатление что это тайна военная какая то.
pet-rovich вне форума Ответить с цитированием
Старый 12.03.2013, 18:35   #3
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Ну так вопросов нет - отвечать не на что.
s-andriano вне форума Ответить с цитированием
Старый 12.03.2013, 21:24   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
разобраться с написанием софта через LPT


Уточните не для телепатов:
- вы хотите написать софт для его последующей прошивки через LPT программатор?
- или же вы хотите написать софт, представляющий собой прошивальщик через LPT для работы с некоторым чипом?

Судя по ремарке про EEPROM, вы хотите написать прошивальщик? Открываете документацию на 24с02 и находите сигнатуры и временные диаграммы, т.е. как работать с его архитектурой на низком уровне, какой сигнал когда и сколько дергать. И так для каждого чипа. Ферштеен?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 13.03.2013, 19:45   #5
pet-rovich
Пользователь
 
Регистрация: 02.03.2013
Сообщений: 10
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение


Уточните не для телепатов:
- вы хотите написать софт для его последующей прошивки через LPT программатор?
- или же вы хотите написать софт, представляющий собой прошивальщик через LPT для работы с некоторым чипом?

Судя по ремарке про EEPROM, вы хотите написать прошивальщик? Открываете документацию на 24с02 и находите сигнатуры и временные диаграммы, т.е. как работать с его архитектурой на низком уровне, какой сигнал когда и сколько дергать. И так для каждого чипа. Ферштеен?
Вы правы прошивальщик... но я думал что софт т.е (программа) для програматора будет понятно. Ну вобщем что мне не понятно: Из того что я накопал
scl в "0". Этой процедурой сопровождаются все информационные биты и биты R/W и экнолидж),
где A0,A1,A2 это сигналы на входах ЕЕПРОМ A0,A1,A2.
Например A0,A1,A2 подсоеденены к земле, тогда слэйв адрес будет ( 1 0 1 0 0 0 ),
а если A0,A1,A2 подсоединены к "+5 В", тогда адрес равен ( 1 0 1 0 1 1 1 ),
Но если я посылаю команду "0" а тут надо три "0" подрят то как это прописать ведь если пин уже в состоянии''0'' то как scl указать что их три подряд он же будет в сплошном "0" находиться? ну или тоже самое с "1".
pet-rovich вне форума Ответить с цитированием
Старый 13.03.2013, 20:04   #6
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...три раза подряд или все-таки импульс длительностью нуля в три такта? Смотрите диаграммы.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 13.03.2013, 21:36   #7
pet-rovich
Пользователь
 
Регистрация: 02.03.2013
Сообщений: 10
По умолчанию

А можно маленький фрагмент кода... как сгенерировать импульс допустим на 2pin пусть это шина scl и в тоже время привязать к нему посланный код через pin3 шина sda 1010000 вот не пойму как это сделать.
pet-rovich вне форума Ответить с цитированием
Старый 13.03.2013, 22:38   #8
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Может это Вам поможет.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 17.03.2013, 08:55   #9
pet-rovich
Пользователь
 
Регистрация: 02.03.2013
Сообщений: 10
По умолчанию

Кажется с импульсом разобрался, вот только не понял в какой момент отправлять а в какой считывать ACK после SLAVE ADRES, WORD ADDRESS, READ DATA BYTE
pet-rovich вне форума Ответить с цитированием
Старый 17.03.2013, 18:16   #10
pet-rovich
Пользователь
 
Регистрация: 02.03.2013
Сообщений: 10
По умолчанию

Вот что написал но что то не считывает
procedure TForm1.SlaveAdres;
begin;
Out32(888,1); // 1
sleep(1);
Out32(888,0);
sleep(1);
Out32(888,1);
sleep(1);
Out32(888,3); // 0
sleep(1);
Out32(888,2);
sleep(1);
Out32(888,3);
sleep(1);
Out32(888,1); // 1
sleep(1);
Out32(888,0);
sleep(1);
Out32(888,1);
sleep(1);
Out32(888,3); // 0
sleep(1);
Out32(888,2);
sleep(1);
Out32(888,3);
sleep(1);
Out32(888,3); // 0
sleep(1);
Out32(888,2);
sleep(1);
Out32(888,3);
sleep(1);
Out32(888,3); // 0
sleep(1);
Out32(888,2);
sleep(1);
Out32(888,3);
sleep(1);
Out32(888,3); // 0
sleep(1);
Out32(888,2);
sleep(1);
Out32(888,3);
sleep(1);
end;

procedure TForm1.Acknoledge; // отправить ACK
begin
Out32(888,3);
sleep(1);
Out32(888,1);
sleep(1);
Out32(888,3);
sleep(1);
end;

procedure TForm1.Stop;
begin
Out32(888,3); // sda scl в 0
sleep(1);
Out32(888,2); // scl в 1
sleep(1);
Out32(888,0); // sda scl в 1
end;

procedure TForm1.R_W_0;
begin
Out32(888,3);
sleep(1);
Out32(888,2);
sleep(1);
Out32(888,3);
sleep(1);
end;

procedure TForm1.R_W_1;
begin
Out32(888,1);
sleep(1);
Out32(888,0);
sleep(1);
Out32(888,1);
sleep(1);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
start;
SlaveAdres;
R_W_0;
Acknoledge;
WORDADDRESS;
Acknoledge;
start;
SlaveAdres;
R_W_1;
Acknoledge;
READ_DATA_BYTE;
AcknoledgeM;
Stop;
Edit1.Text:= inttostr(Ackno);
edit2.Text:= inttostr(b7) + inttostr(b6) + inttostr(b5) + inttostr(b4) + inttostr(b3) + inttostr(b2);


end;

procedure TForm1.WORDADDRESS; // отправить
begin;
Out32(888,3); // 0
sleep(1);
Out32(888,2);
sleep(1);
Out32(888,3);
sleep(1);
Out32(888,3); // 0
sleep(1);
Out32(888,2);
sleep(1);
Out32(888,3);
sleep(1);
Out32(888,3); // 0
sleep(1);
Out32(888,2);
sleep(1);
Out32(888,3);
sleep(1);
Out32(888,3); // 0
sleep(1);
Out32(888,2);
sleep(1);
Out32(888,3);
sleep(1);
Out32(888,1); // 1
sleep(1);
Out32(888,0);
sleep(1);
Out32(888,1);
sleep(1);
Out32(888,3); // 0
sleep(1);
Out32(888,2);
sleep(1);
Out32(888,3);
sleep(1);
Out32(888,1); // 1
sleep(1);
Out32(888,0);
sleep(1);
Out32(888,1);
sleep(1);
Out32(888,1); // 1
sleep(1);
Out32(888,0);
sleep(1);
Out32(888,1);
sleep(1);
end;

procedure TForm1.READ_DATA_BYTE; // считываем
begin
sleep(1);
Out32(888,0);
sleep(1);
b7:= Dec_Bin(inp32(889))[4];
Out32(888,1);
sleep(1);
sleep(1);
Out32(888,0);
sleep(1);
b6:= Dec_Bin(inp32(889))[4];
Out32(888,1);
sleep(1);
sleep(1);
Out32(888,0);
sleep(1);
b5:= Dec_Bin(inp32(889))[4];
Out32(888,1);
sleep(1);
sleep(1);
Out32(888,0);
sleep(1);
b4:= Dec_Bin(inp32(889))[4];
Out32(888,1);
sleep(1);
sleep(1);
Out32(888,0);
sleep(1);
b3:= Dec_Bin(inp32(889))[4];
Out32(888,1);
sleep(1);
sleep(1);
Out32(888,0);
sleep(1);
b2:= Dec_Bin(inp32(889))[4];
Out32(888,1);
sleep(1);
sleep(1);
Out32(888,0);
sleep(1);
b1:= Dec_Bin(inp32(889))[4];
Out32(888,1);
sleep(1);
sleep(1);
Out32(888,0);
sleep(1);
b0:= Dec_Bin(inp32(889))[4];
Out32(888,1);
sleep(1);

end;
procedure TForm1.AcknoledgeM; // пинемаем ACK
begin
sleep(1);
Out32(888,0);
sleep(1);
ackno:= Dec_Bin(inp32(889))[4];
Out32(888,1);
sleep(1);
end;
end.

Последний раз редактировалось pet-rovich; 17.03.2013 в 18:29.
pet-rovich вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что используется для создания программ с графическим интерфейсом на с++? DIQUON Общие вопросы C/C++ 4 10.12.2012 00:57
delphi ==>сурьёзный софт для офиса(например CRM-система) art-programs Софт 7 20.05.2010 15:39
Софт для верски yarilo HTML и CSS 6 25.01.2010 19:43