|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
10.03.2013, 16:29 | #1 |
Пользователь
Регистрация: 02.03.2013
Сообщений: 10
|
Софт для програматора с интерфейсом LPT (Delphi)
Хотелось бы разобраться с написанием софта через LPT, для более лучшего его понимания. Изучил статью http://www.programmersforum.ru/showt...606#post381606 спасибо автору. Думаю что эта статья была бы полезна многим новичкам. Но если великие гуру посчитают эту тему ненужной, то хотя бы ткните ссылочкой где можно этому научится. Если всё таки тема приживётся, то я думаю начать лучше с микросхемы памяти 24с02, для которой возмём простенькое железо с PonyProg
Последний раз редактировалось pet-rovich; 10.03.2013 в 16:54. |
12.03.2013, 18:12 | #2 |
Пользователь
Регистрация: 02.03.2013
Сообщений: 10
|
Да.... А в ответ тишина. Вот и я уже месяц гуглю и не чего вразумительного найти не могу. Складывается впечатление что это тайна военная какая то.
|
12.03.2013, 18:35 | #3 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Ну так вопросов нет - отвечать не на что.
|
12.03.2013, 21:24 | #4 | |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
Цитата:
Уточните не для телепатов: - вы хотите написать софт для его последующей прошивки через LPT программатор? - или же вы хотите написать софт, представляющий собой прошивальщик через LPT для работы с некоторым чипом? Судя по ремарке про EEPROM, вы хотите написать прошивальщик? Открываете документацию на 24с02 и находите сигнатуры и временные диаграммы, т.е. как работать с его архитектурой на низком уровне, какой сигнал когда и сколько дергать. И так для каждого чипа. Ферштеен?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
|
13.03.2013, 19:45 | #5 | |
Пользователь
Регистрация: 02.03.2013
Сообщений: 10
|
Цитата:
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". |
|
13.03.2013, 20:04 | #6 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
...три раза подряд или все-таки импульс длительностью нуля в три такта? Смотрите диаграммы.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
13.03.2013, 21:36 | #7 |
Пользователь
Регистрация: 02.03.2013
Сообщений: 10
|
А можно маленький фрагмент кода... как сгенерировать импульс допустим на 2pin пусть это шина scl и в тоже время привязать к нему посланный код через pin3 шина sda 1010000 вот не пойму как это сделать.
|
13.03.2013, 22:38 | #8 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Может это Вам поможет.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
17.03.2013, 08:55 | #9 |
Пользователь
Регистрация: 02.03.2013
Сообщений: 10
|
Кажется с импульсом разобрался, вот только не понял в какой момент отправлять а в какой считывать ACK после SLAVE ADRES, WORD ADDRESS, READ DATA BYTE
|
17.03.2013, 18:16 | #10 |
Пользователь
Регистрация: 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. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Что используется для создания программ с графическим интерфейсом на с++? | 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 |