Перейти к содержанию
    

ds18s20

Участник
  • Постов

    5
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные ds18s20


  1. Здравствуйте. У меня возникла следующая проблема при работе с "кипарисом". Пытаюсь сконфигурировать EP2 в режим interrupt с двойной буфферизацией в AUTOIN режиме, но данные не передаются и на выводе FLAGA всё время присутсвтует высокий уровень. Подскажите пожалуйста, что я делаю не так.

    void initialize(void)
    {
        CPUCS = 0x10;                   // 48 MHz, CLKOUT output disabled.
        IFCONFIG=0xCB;                  // Internal IFCLK, 48MHz; A,B as normal ports; async; slave fifo
        SYNCDELAY;
    
        REVCTL = 0x03;  // See TRM...
        SYNCDELAY;
    
        EP2CFG = 0xFA;        // 1111 1010 (interrupt IN, 1024 bytes, double-buffered)
        SYNCDELAY;
    
        FIFORESET = 0x80;  SYNCDELAY;  // NAK all requests from host.
        FIFORESET = 0x82;  SYNCDELAY;  // Reset individual EP (2,4,6,8)
        FIFORESET = 0x84;  SYNCDELAY;
        FIFORESET = 0x86;  SYNCDELAY;
        FIFORESET = 0x88;  SYNCDELAY;
        FIFORESET = 0x00;  SYNCDELAY;  // Resume normal operation.
    
        EP2FIFOCFG = 0x0D;        // 0000 1101 (autoin, zerolenin, 16bit bus)
        SYNCDELAY;
    
        PORTACFG = 0x00;    //
        SYNCDELAY;
    
        FIFOPINPOLAR = 0x3F;      //0011 1111 (active high FF, EF, SLWR, SLRD, SLOE, PKTEND)
        SYNCDELAY;
    
        EP2AUTOINLENH = 0x04;
        SYNCDELAY;
    
        EP2AUTOINLENL = 0x00;
        SYNCDELAY;
    
        PINFLAGSAB = 0xC8;         //FLAGA = EF - EP2; FLAGB = FF - EP2
        SYNCDELAY;
    
        PINFLAGSCD = 0xFB;        //FLAGC = EF - EP8; FLAGD = FF - EP8
        SYNCDELAY;
    
        OUTPKTEND = 0x82;  SYNCDELAY;
        OUTPKTEND = 0x82;  SYNCDELAY;
    }

  2. Здравствуй

     

    Здравствуйте. Передо мной стоит следующая задача. Есть микроконтроллер CY7C68013A, работающий в режиме slave-fifo, в задачу которого входит получение данных по параллельной шине GPIF и запись полученного в буфер 6-ой конечной точки. Требуется разработать ПО верхнего уровня, используя библиотеку libusb, для считывания данных по USB от "кипариса". Хотел бы спросить сталкивался ли кто с подобным и есть ли готовые примеры? Код, который я нашёл на одном из сайтов не работает - функция libusb_bulk_transfer всегда возвращает -1. Может кто-нибудь подсказать в чём дело?

    sources.zip

    sources.zip

  3. Здравствуйте. У меня возникла следующая проблема. При попытке собрать примеры scmRTOS.3.05 для микроконтроллеров MSP430 компилятор (msp430-gcc 4.6.3) выдаёт большое количество ошибок (листинг представлен ниже). Хотелось бы понять в чём дело, примеры для 4-ой версии ОСи данным компилятором собираются без проблем.

     

    ../scmRTOS/MSP430/OS_Target.h: В функции «void SetISRStackPointer()»:

    ../scmRTOS/MSP430/OS_Target.h:219:5: ошибка: некорректное преобразование из «word {aka short unsigned int}» в «void*» [-fpermissive]

    /usr/local/lib/gcc/msp430/4.6.3/../../../../msp430/include/intrinsics.h:82:6: ошибка: при инициализации 1 -го аргумента «void __write_stack_pointer(void*)» [-fpermissive]

    ../scmRTOS/MSP430/OS_Target.h: В функции «void SetStackPointer(TStackItem*)»:

    ../scmRTOS/MSP430/OS_Target.h:222:61: ошибка: некорректное преобразование из «word {aka short unsigned int}» в «void*» [-fpermissive]

    /usr/local/lib/gcc/msp430/4.6.3/../../../../msp430/include/intrinsics.h:82:6: ошибка: при инициализации 1 -го аргумента «void __write_stack_pointer(void*)» [-fpermissive]

    In file included from ../scmRTOS/MSP430/OS_Target.h:230:0,

    from ../scmRTOS/Common/scmRTOS.h:52,

    from ./src/main.cpp:48:

    ../scmRTOS/Common/OS_Kernel.h: At global scope:

    ../scmRTOS/Common/OS_Kernel.h:111:44: ошибка: «TBaseProcess» не был декларирован

    ../scmRTOS/Common/OS_Kernel.h:112:49: ошибка: «TBaseProcess» не был декларирован

    ../scmRTOS/Common/OS_Kernel.h:113:54: ошибка: «TBaseProcess» не является именем типа

    ../scmRTOS/Common/OS_Kernel.h:113:68: ошибка: ISO C++ запрещает декларации «p» без типа [-fpermissive]

    ../scmRTOS/Common/OS_Kernel.h:114:55: ошибка: «TBaseProcess» не является именем типа

    ../scmRTOS/Common/OS_Kernel.h:114:69: ошибка: ISO C++ запрещает декларации «p» без типа [-fpermissive]

    ../scmRTOS/Common/OS_Kernel.h:124:9: ошибка: «TBaseProcess» не является именем типа

    ../scmRTOS/Common/OS_Kernel.h:148:44: ошибка: «TBaseProcess» не был декларирован

    In file included from ../scmRTOS/MSP430/OS_Target.h:230:0,

    from ../scmRTOS/Common/scmRTOS.h:52,

    from ./src/main.cpp:48:

    ../scmRTOS/Common/OS_Kernel.h: В функции «bool OS::IsProcessSuspended(const OS::TBaseProcess&)»:

    ../scmRTOS/Common/OS_Kernel.h:123:21: ошибка: «OS::TProcessMap OS::TKernel::ReadyProcessMap» is private

    ../scmRTOS/Common/OS_Kernel.h:283:19: ошибка: в данном контексте

    ../scmRTOS/Common/OS_Kernel.h: At global scope:

    ../scmRTOS/Common/OS_Kernel.h:307:6: ошибка: прототип для «void OS::TKernel::RegisterProcess(OS::TBaseProcess*)» не имеет соответствия в классе «OS::TKernel»

    ../scmRTOS/Common/OS_Kernel.h:148:28: ошибка: претендент: void OS::TKernel::RegisterProcess(int*)

    ../scmRTOS/Common/OS_Kernel.h: В функции-члене «void OS::TKernel::SystemTimer()»:

    ../scmRTOS/Common/OS_Kernel.h:333:27: ошибка: нет декларации «ProcessTable» в этой области видимости

    ../scmRTOS/Common/OS_Kernel.h: В функции-члене «TStackItem* OS::TKernel::ContextSwitchHook(TStackItem*)»:

    ../scmRTOS/Common/OS_Kernel.h:383:5: ошибка: нет декларации «ProcessTable» в этой области видимости

    ../scmRTOS/Common/OS_Kernel.h: At global scope:

    ../scmRTOS/Common/OS_Kernel.h:398:28: ошибка: «void OS::Run()» следовало объявить внутри «OS»

    ../scmRTOS/Common/OS_Kernel.h: В функции «void OS::Run()»:

    ../scmRTOS/Common/OS_Kernel.h:400:29: ошибка: «class OS::TKernel» has no member named «ProcessTable»

    In file included from ../scmRTOS/Common/OS_Kernel.h:404:0,

    from ../scmRTOS/MSP430/OS_Target.h:230,

    from ../scmRTOS/Common/scmRTOS.h:52,

    from ./src/main.cpp:48:

    ../scmRTOS/Common/OS_Services.h: В функции-члене «bool OS::channel<T, size, S>::pop(T&, TTimeout)»:

    ../scmRTOS/Common/OS_Services.h:311:34: ошибка: «class OS::TKernel» has no member named «ProcessTable»

    ../scmRTOS/Common/OS_Services.h: В функции-члене «bool OS::channel<T, size, S>::pop_back(T&, TTimeout)»:

    ../scmRTOS/Common/OS_Services.h:353:34: ошибка: «class OS::TKernel» has no member named «ProcessTable»

    ../scmRTOS/Common/OS_Services.h: В функции-члене «bool OS::channel<T, size, S>::read(T*, S, TTimeout)»:

    ../scmRTOS/Common/OS_Services.h:412:30: ошибка: «class OS::TKernel» has no member named «ProcessTable»

    Сборка завершилась с ошибкой.

    In file included from ../scmRTOS/Common/scmRTOS.h:52:0,

    from ./src/main.cpp:48:

    ../scmRTOS/MSP430/OS_Target.h: В функции-члене «void OS::TISRW_SS::ISR_Enter()»:

    ../scmRTOS/MSP430/OS_Target.h:278:24: ошибка: «class OS::TKernel» has no member named «ProcessTable»

    ../scmRTOS/MSP430/OS_Target.h: В функции-члене «void OS::TISRW_SS::ISR_Exit()»:

    ../scmRTOS/MSP430/OS_Target.h:287:36: ошибка: «class OS::TKernel» has no member named «ProcessTable»

    ./src/main.cpp: At global scope:

    ./src/main.cpp:110:17: ошибка: specializing member «OS::process<(OS::TPriority)0u, 200u>::Exec» requires «template<>» syntax

    make: *** [obj/main.o] Ошибка 1

×
×
  • Создать...