программирование cpu-188/ ПОМОГИТЕ. |
Ответить |
Автор | |
Новичок Присоединился: 07 Ноябрь 2007 Online Status: Offline Публикации: 5 |
Опубликовано: 27 Ноябрь 2007 15:52 |
мне необходимо написать прогу для cpu-188 с прерыванями для компорта. я хочу писать на С. Вот написал программку с прерываниями таймера 1 и каждую секунду мигает светодиод. я связан с cpu через терминал винды. но после запуска и выхода из моей простой прогрммки больше не работает функция ftrans контроллер виснет при попытке записатьв него прогу.
помогите плиз. вот прога. 553FD_cpu188.zip где косяк ? и может у кого есть пример приема по прерываниям порта на С. очень буду благодарен. |
|
Новичок Присоединился: 07 Ноябрь 2007 Online Status: Offline Публикации: 5 |
|
вот текст:
#include <dos.h> #include <bios.h> #include <stdio.h> #define Vector 0x12 #define EOIrqReg 0xff22 #define MskReg 0xff28 #define Mask 0x01 char Flag1; int Flag; int Delay; int d; void interrupt HandlerTimer1() { _DX=0xFF2C; _AX=inport(_DX); if(_AL & 0x01) { Delay++; if(Delay==500) { Flag ^=1; outportb(0x87,Flag<<1); Delay=0; Flag1=1; } } _AX=0x0008; _DX=0xFF22; outportb(_DX,_AL); } void interrupt (*oldhandlerTimer1)(); void Timer1Init(void) { _DX=0xFF5E; _AX=0x4000; outport(_DX,_AX); _DX=0xFF58; _AX=0; outport(_DX,_AX); _DX=0xFF5A; _AX=0x2710; outport(_DX,_AX); _DX=0xFF5E; _AX=0xE001; outport(_DX,_AX); } void main () { Flag=0; Delay=0; printf(" Hello! Press any key to Quit...\n"); // disable(); oldhandlerTimer1=getvect(Vector); setvect(Vector,HandlerTimer1); _AX=(inportb(MskReg)&(~Mask)); outport(MskReg,_AX); Timer1Init(); enable(); while(1) { if (bioskey(1)) { disable(); _AX=(inportb(MskReg)|(Mask)); outportb(MskReg,_AL); setvect(Vector,oldhandlerTimer1); enable(); // printf(" Process is stopped 2 \n"); bioskey(0); return; } } } |
|
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 25 Апрель 2006 Категория: Russian Federation Online Status: Offline Публикации: 116 |
|
А на ASM не подойдет?
|
|
Vel
|
|
Ответить |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |