[#1]
przerwanie RTC w pececie (uC/OS II)
Witam wszystkich
Kolejna radosna sprawa, tym razem dotyczy moich znajomych, którzy mają zasadniczy problem. Otóż potrzebują oni pomocy przy obsłudze przerwania z RTC w pececie, a całość programu ma śmigać pod systemem czasu rzeczywistego (more or less :D) uC/OS II. Tak to wygląda ogólnie, a szczególnie wygląda to mniej więcej tak:
outp(0x70, 0x0A);
aaa = (INT8U)inp(0x71);
while (aaa & 0x80) aaa = (INT8U)inp(0x71);
aaa |= 0x0F;
outp(0x71, aaa);
outp(0x70, 0x0B);
aaa = (INT8U)inp(0x71) | 0xC0;
outp(0x71, aaa);
OS_ENTER_CRITICAL();
PC_VectSet(0x08, OSTickISR); /* Install uC/OS-II's clock tick ISR */
PC_SetTickRate(OS_TICKS_PER_SEC); /* Reprogram tick rate */
OS_EXIT_CRITICAL();
To jest jeszcze na 8254, a chodzi o to żeby było na przerwaniu rtc
Pytanie, czy przerwanie rtc to 0x09, i jeżeli tak, to dlaczego mimo ustawienia parametru częstotliwości - całość nie hula.
Jeżeli ktoś już robił coś takiego, lub chciałby się na gwałt z tym zmierzyć to zapraszam. Czas goni, jeśli w grę wchodzi kasa, to też jest to jak najbardziej akceptowalne. Dzięki wszystkim za ew. pomoc.
Wiem że problem wyjaśniłem nieco chaotycznie, ale podobnie wyjaśnili mi to i oni. Mam przykładowy progs, całość kompilowana pod Borlandem 4.5, do tego nagranie tego co pan doktor próbował przekazać odnośnie problem, wszystko wystawię gdzieś w necie jak tylko ktoś stwierdzi, ze ma ochotę w to zerknąć. Dzięxy z góry.