Hej
Jag sitter och försöker bygga en serieport-till-I2C-omvandlare, använder kretsen max232 och ett par transistorer mellan. När jag ska sända data och clock så använder jag RTS och DTR på serieporten, när jag sen vill läsa så använder jag DSR och CTS.
Problemet är nu att "inget händer". Jag kan skriva till porten com2 (2FBhex) och läsa det jag skrivit, men inget händer elektriskt på porten. Jag har testat porten genom att köra IC-prog och då har signaler kommit fram så det är inget kabelbrott. (Jag har kopplat ett par lysdioder via transistorer till ttl-utgångarna på max232:an för att kunna se när dessa är ettor eller nollor. )
Jag använder ett litet enkelt c-program som skriver direkt till porten. Det är kompilerat med djgpp. Jag kör i Windows98. Är det någon drivrutin som hindrar eller går det inte att köra direkt I/O i Win98?
Här är testprogrammet (ska sätta på och stänga av RTS och DTR ett par gånger):
#include #include
int main(void) { unsigned char a; outportb(0x2FB,0); delay(250); outportb(0x2FB,0x0b); delay(250); outportb(0x2FB,0); delay(250); outportb(0x2FB,0x0b); delay(250); outportb(0x2FB,0); delay(250); a=inportb(0x2FB); printf("Laser byte pa MCR: %xh\n",a); delay(100); printf("Satter byte pa MCR till 0x0b...\n"); outportb(0x2FB,0x0b); delay(250); a=inportb(0x2FB); delay(100); printf("Laser byte pa MCR: %xh\n",a); delay(100); return 0; }
Har någon tips om vad jag kan göra för att få det hela att funka?
mvh Oscar Johansson