bammi@cwruecmp.UUCP (Jwahar R. Bammi) (01/07/86)
Has anyone had any luck with the xbios Xbtimer() trap. Every time I try to use it I get 2 Mushrooms. I have tried my code in supervisor mode and get the same result. Here is a short test program I wrote to see what was going on. I use a control register value of 7 which should give me a prescale value of 200, and data register value of 0 that should give me a count of 256 for timer 'a' on the 68901. Theoretically i should get an interrupt frequency of 48 Hz. ( 2.4576 Mhz / 256 / 200 ). #include <osbind.h> #define VOID int long counter; /* Interrupt handler */ VOID my_handler() { counter++; } /* Start_timer */ VOID start_timer() { VOID my_handler(); /* Start the timer */ counter = 0L; Xbtimer(0, 7, 0, my_handler); } /* Stop the timer */ VOID stop_timer() { VOID my_handler(); /* Stop the timer by clearing the timer a control register */ Xbtimer(0, 0, 0, my_handler); } /* Stack pointer save area */ long ssp_save; main() { /* Save the super stack, get into super mode using USR stack */ ssp_save = Super(0L); start_timer(); while(counter == 0L) /* twiddle thumb */; /* Got interrupt */ stop_timer(); /* get out of supervisor mode */ Super(ssp_save); Cconws("I made it!!\r\n"); /* I never get the message */ } Any help will be much appreciated. -- Jwahar R. Bammi Usenet: .....!decvax!cwruecmp!bammi CSnet: bammi@case Arpa: bammi%case@csnet-relay CompuServe: 71515,155