// test.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "windows.h" #include "../sli6_ext.h" #include #include #include #include extern CHAR SLI6_ErrorString[1024]; void intf(int,PVOID param); //void intf2(int,PVOID param); int intn; int main(int argc, char* argv[]) { printf("Test opsli.lib\n"); int CN1; // открытие крейтов if((CN1 = OpenCrate(1,1)) == -1) printf("error open crate 1"); //if((CN2 = OpenCrate(1,2)) == -1) printf("error open crate 2"); // работа с крейтами unsigned short data16 = 0xFFFF; unsigned short datar16 = 0x0; unsigned int status = 0x0; // запись данных в канал CN1,N=1,A=0 status = cam16(CN1,1,0,16,&data16); if(status == -1) { // ошибка printf("%s",SLI6_ErrorString); } // эквивалент предыдущей команды, только быстрее status = cam16write(CN1,1,0,&data16); if(status == -1) { // ошибка printf("%s",SLI6_ErrorString); } // чтение данных из канала CN1,N=1,A=0 status = cam16(CN1,1,0,0,&datar16); if(status == -1) { // ошибка printf("%s",SLI6_ErrorString); } // эквивалент предыдущей команды, только быстрее status = cam16read(CN1,1,0,&datar16); if(status == -1) { // ошибка printf("%s",SLI6_ErrorString); } printf("datar = %0x\n",datar16); unsigned long data24 = 0xFFFFFF; // чтение данных из канала CN1,N=1,A=0 status = cam24read(CN1,1,0,&data24); if(status == -1) { // ошибка printf("%s",SLI6_ErrorString); } for(unsigned long d=0x0; d <= 0xFFFFFF; d++) cam24write(CN1,1,0,&d); /////////// прерывания //////////////// unsigned short maska = 0x1; // регистр маски и запросов cam16write(CN1,0,1,&maska); // статусный регистр контроллера cam16read(CN1,0,0,&datar16); datar16 |= 0x40; cam16write(CN1,0,0,&datar16); // установка фукнции обработчика SetIntOnLAMfunc(CN1,intf); // влючение прерываний LAMIntEnable(CN1,NULL); Sleep(30000); LAMIntDisable(CN1); /////////////////////////////////////// CloseCrate(CN1); // CloseCrate(CN2); return 0; } void intf(int CN,PVOID param) { printf("Interrupt from %0x channel! %d",(CN & 0x0000FFFF),intn++); if(LAMIntEnable(CN,NULL) == -1) printf("error LAM! \n%s",SLI6_ErrorString); printf("\nEND\n"); } /* void intf2(int CN,PVOID param) { printf("Interrupt from %0x channel!",(CN & 0x0000FFFF)); if(LAMIntEnable(CN,NULL) == -1) printf("error LAM! \n%s",SLI6_ErrorString); printf("\nEND\n"); }*/