Цитата(bodja74 @ Feb 7 2008, 19:30)

ReAlЕсли брать по большому счету ,то у вас проблема ,которой не существует

Очень рад это слышать. Причём похожая проблема как минимум у уже упоминавшегося в этом треде программатора для MSP430. Вы одним махом решили проблемы минимум двух программаторов.
Цитата(bodja74 @ Feb 7 2008, 19:30)

а требует только базовый адресс ,то пошлите его лесом гулять,и подыщите нормальный.
Не нужно будет извращаться с копаниями в реестре вообще.
К примеру если для LPT нужно ,есть драйвер TVicPort ,ложится под любой язык ,начиная с Билдера кончая .NET .
Сам определяет какие есть порты, сколько их, какие у них базовые адресса,дергает любой ногой
Это вот этот?
http://www.entechtaiwan.com/dev/port/index.shtmСлышал про него раньше, но он не был фриварным.
Качаю. Ставлю. Перегружаюсь.
Леплю маленькую программульку.
Код
#include <windows.h>
#include <stdio.h>
#include "TVicPort.h"
#define DLLNAME "TVicPort.dll"
int main()
{
USHORT VICFN (*pGetLPTNumPorts)();
int ports;
HINSTANCE hdll = LoadLibrary(DLLNAME);
if (hdll == NULL) {
puts("Can't load " DLLNAME);
return 1;
}
puts( DLLNAME " loaded");
pGetLPTNumPorts = GetProcAddress(hdll, "GetLPTNumPorts");
if( pGetLPTNumPorts == NULL) {
puts( "Can't get GetLPTNumPorts() address");
return 1;
}
ports = pGetLPTNumPorts();
printf("%d LPT ports found\n", ports);
FreeLibrary(hdll);
return 0;
}
Запускаю. Получаю.
Код
TVicPort.dll loaded
0 LPT ports found
На всякий случай проверяю - вдруг моль трахнула мой LPT пока я был на работе.
CODE
avreal/WIN32 - AVR controllers LPT programmer by Redchuk Alexandr
v1.25rev6 (Dec 30 2007 17:00:01)
http://www.ln.ua/~real/avrealbug-reports, suggestions and so on mail to avreal@real.kiev.ua
Command:
-ab -pE800 +mega168 -%
% LPT base port 0xE800
% assume that LPT data writes not faster then 1uS
% ByteBlasterMV found
% ByteBlaster mode
% osc = 800kHz -> setup=3, hold=3,2
% Reset
% PgmOn reply 0x00005300
% Synchronised after 1 try
% GetID reply 0x0030001E
% GetID reply 0x00300094
% GetID reply 0x00300006
% Read ID: 0x1E9406
Device connected, MEGA168 detected
% ReadLock command 0x58000000
% ReadLock reply 0x005800FF
Chip not locked
% ReadOsccal command 0x38000000
% ReadOsccal reply 0x003800B0
% ReadFuses command 0x50000000
% ReadFuses reply 0x005000C2
% ReadFuses command 0x58000000
% ReadFuses reply 0x005800FF
% ReadFuses command 0x58080000
% ReadFuses reply 0x005808DD
% ReadFuses command 0x50080000
% ReadFuses reply 0x005008F9
Fuses
OSCCAL = B0
CKDIV = 1
CKOUT = 1
SUT = 0
CKSEL = 2
BLB1 = 3
BLB0 = 3
RSTDISBL = 1
DWEN = 1
WDTON = 1
EESAVE = 1
BODLEVEL = 5
BOOTSZ = 0
BOOTRST = 1
Reset pin released
Adapter disabled
Нет, не трахнула.
Собственно, в хелпе на GetLPTNumPorts ясно написано:
Цитата
Some new ports like PCI LPTs does not report about its resources so you should add this kind of ports to TVicPort manually with the help of AddNewLPT function.
Т.е. возвращаемся к тому, что было - нужно как-то узнать адрес. А если я его
уже знаю - мне этит твикпорт для доступа к LPT и не нужен.
Или имелся ввиду какой-то другой TVicPort?
Там рядом ещё есть TVicLPT, который обещает и с нестандартными PCI-портами работать.
Single License is $65 U.S.Цитата(bodja74 @ Feb 7 2008, 19:30)

Я с LPT редко работал ,поэтому коллекцию себе не собирал.
ИМХО если чтото новое мутить ,то лучше на LPT и не закладываться,но это дело хозяйское

"Тут трактор нужен"...
Вся тема посвящена использованию СТАРОГО, понятно, что лучше быть богатым и здоровым, чем бедным и больным.
Цитата(bodja74 @ Feb 7 2008, 19:30)

Насчет СОМ ,функции CreateFile, ReadFile, SetupComm, WriteFile и т.д. у меня в коде они есть,я выдернул с инета уже четыре варианта и у всех одна и таже проблема с пропуском байтов.
Я ничего из интернета не дёргал, MSDN читал. Там есть хороший пример - MTTTY (Multi-Threaded TTY).
У меня никаких Sleep()-ов, отдельный поток спит до появления байтиков в порту.
По осциллографу от стопа последнего байта входящего в PC пакета до старта выходящего ответа микросекунд двести было на атлоне-550MHz/W2000SP3. С тех пор с ком-портом практически не работал.