Jump to content

    

SALKA

Свой
  • Content Count

    89
  • Joined

  • Last visited

Everything posted by SALKA


  1. чтобы уменьшить уровень помех на VDDEXT, так как на этой шине находятся еще аналоговые компоненты..
  2. Можно ли на вход встроенного в BLACKFIN преобразователя напряжения (на полевой транзистор) подавать напряжение большее чем VDDEXT, например 5...6 Вольт???
  3. Какие существуют программы для расчета коэф. цифровых фильтров? конкретно интересует, в чем рассчитать целочисленные коэф. для примера цифрового фильтра BLACKFINа, который приведен в VisualDSP, в библиотеке <filter.h>?
  4. Подскажите пожалуйста, как сделать INIT_CODE.DXE только для увеличения скорости загрузки из последовательной AT45. Что нужно оставить в шаблоне из папки VDSP?
  5. Я понимаю, что это тоже самое, просто одна переменная разделена на два числа???
  6. а какой вариант может быть быстрее, чем представлять floating point двумя числами (до запятой, после запятой)? На счет переноса в Си, то я планировал сделать вставку в ассемблере. Я не знаю ассемблер BF, но на intel и AVR такие комманды точно есть..
  7. Мне на BF532 надо иметь дело с плав. точкой. Применять эмуляцию, что предлагает VDSP, я боюсь, тк не знаю во что это обойдется по кол-ву лишних затраченный тактов. Собираюсь написать свой класс и представлять float, как два числа, одно LONG, другое ULONG. Первое определяет знак и содежимое до запятой, второе число определяет содежимое после запятой. Переполнения у меня не ожидаются, все результаты прогнозируются и находятся в отведенном диапазоне. Но алгоитм использующий double,не мой, он большой и передалать его на целые числа не имею возможности. Уместно ли идти по этому пути или лучше принять эмуляцию от VDSP?
  8. там, как мне помнится, RESET должен удерживаться в течении 2000 тактов генератора. так вот, если у тебя кнопка на самом Resete висит, то после отпускания, может происходить дребезг, и может не выдерживаться 2000 тактов генератора...
  9. расскажите пожалуйста, что такое тулчейн?
  10. ...Это всегда было , на всех силиконах. BLACKFIN не будет выдавать сигнал на выход, если включен INEN(подключен входной внутренний буфер)!!!! .. а по спецификации i2c вывод clk мастера, тоже должен работать на вход, дожидаться когда slave устройство перестанет его удерживать (некоторые ведомые уст-ва могут удерживать clk)
  11. Вы попробуйте запустить проект без отладчика. Эти макросы запрещают прерывания на время свего выполнения.
  12. Я I2C сам писал, без прерываний от таймера. Замучился отлаживать.. пока не исправил код с учетом аппаратной аномалии: #define SDA PF3 // âûâîä SDA ñîîòâåòñòâóåò íîæêå PF3 BLACKFINà #define SCL PF7 // âûâîä SCL ñîîòâåòñòâóåò íîæêå PF7 BLACKFINà ///////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////// void SDA_1 ( void ) { // *pFIO_DIR &= ~SDA ; // Óñòàíîâêà 1 íà âûâîäå SDA - ïîäòÿãèâàþùèé ðåçèñòîð unsigned short temp ; FIO_ANOM_0311_DIR_R ( temp ) ; FIO_ANOM_0311_DIR_W ( temp & (unsigned short)(~SDA) ) ; } ///////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////// void SDA_0 ( void ) { // *pFIO_DIR |= SDA ; // Óñòàíîâêà 0 íà âûâîäå SDA - 0 íà âûõîä unsigned short temp ; FIO_ANOM_0311_DIR_R ( temp ) ; FIO_ANOM_0311_DIR_W ( temp | SDA ) ; } ///////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////// void SCL_1 ( void ) { // *pFIO_DIR &= ~SCL ; // Óñòàíîâêà 1 íà âûâîäå SCL - ïîäòÿãèâàþùèé ðåçèñòîð unsigned short temp ; FIO_ANOM_0311_DIR_R ( temp ) ; FIO_ANOM_0311_DIR_W ( temp & (unsigned short)(~SCL) ) ; } ///////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////// void SCL_0 ( void ) { // *pFIO_DIR |= SCL ; // Óñòàíîâêà 0 íà âûâîäå SCL - 0 íà âûõîä unsigned short temp ; FIO_ANOM_0311_DIR_R ( temp ) ; FIO_ANOM_0311_DIR_W ( temp | SCL ) ; } ///////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////// unsigned char Read_SDA ( void ) { unsigned short temp_INEN, temp ; FIO_ANOM_0311_INEN_R ( temp_INEN ) ; FIO_ANOM_0311_INEN_W ( temp_INEN | SDA ) ; // *pFIO_INEN |= SDA ; FIO_ANOM_0311_FLAG_R ( temp, pFIO_FLAG_D ) ; FIO_ANOM_0311_INEN_W ( temp_INEN ) ; // *pFIO_INEN &= ~SDA ; FIO_ANOM_0311_FLAG_W ( SDA, pFIO_FLAG_C ) ; // ñáðîñèòü SDA if ( (temp & SDA) != 0 ) return 0x01 ; return 0x00 ; } ///////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////// bool Read_SCL ( void ) // æäåò, ïîêà SCL íå áóäåò ðàâíî 0 { unsigned short temp_INEN, temp ; FIO_ANOM_0311_DIR_R ( temp ) ; FIO_ANOM_0311_DIR_W ( temp & (unsigned short)(~SCL) ) ; // *pFIO_DIR &= ~SCL ; // Óñòàíîâêà 1 íà âûâîäå SCL - ïîäòÿãèâàþùèé ðåçèñòîð FIO_ANOM_0311_INEN_R ( temp_INEN ) ; FIO_ANOM_0311_INEN_W ( temp_INEN | SCL ) ; // *pFIO_INEN |= SCL ; /// unsigned long Count_SCL_0 = 0 ; do { FIO_ANOM_0311_FLAG_R ( temp, pFIO_FLAG_D ) ; if ( ++ Count_SCL_0 >= 10000000 ) return false ; } while ( (temp & SCL ) == 0 ) ; /// FIO_ANOM_0311_INEN_W ( temp_INEN ) ; // *pFIO_INEN &= ~SCL ; FIO_ANOM_0311_FLAG_W ( SCL, pFIO_FLAG_C ) ; // ñáðîñèòü SCL return true ; } ///////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////// void Init_I2C ( void ) { FIO_ANOM_0311_FLAG_W ( SDA, pFIO_FLAG_C ) ; // ñáðîñèòü SDA FIO_ANOM_0311_FLAG_W ( SCL, pFIO_FLAG_C ) ; // ñáðîñèòü SCL }
  13. не встречалось ли кому описание переходника CAN в RS232 или USB? если встречалось, дайте ссылку пожалуйста
  14. что же ты забыл написать, о каком процессоре идет речь?
  15. Спасибо всем. Сам разобрался. оказывается очень выжно, чтобы "разграничить" в начале каждого файла H писать: #ifndef _SAMPLE_H #define _SAMPLE_H и конце #endif
  16. Что-то не могу никак разобраться, как в VDSP, в CPP файле создать структуру, а потом в H файле сделать её extern. например в CPP: typedef struct FFF { char a ; char b ; } ; FFF ggg ; а как будет выглядеть H файл?: extern FFF ggg ; не срабатывает...
  17. Работа с W3150A+

    нет, не отвечает и не пигуется.
  18. Работа с W3150A+

    нет, ничего не пингуется. у меня модуль NM7010B+ проверяю регистры, после записи, значения совпадают. Адресация верная, тк сброс работает....
  19. Работа с W3150A+

    Подскажите, что может быть такое? работаю с 0 сокетом.Довожу его до SOCK_LISTEN, а в SOCK_ESTABLISHED никак не переходит. вод код программы: unsigned char Gateway[4] = { 192, 168, 0, 1 } ; unsigned char Mask[4] = { 255, 255, 255, 0 } ; unsigned char MAC[6] = { 33, 77, 99, 55, 66, 11 } ; // ÌÀÑ àäðåñ unsigned char IP[4] = { 192, 168, 0, 199 } ; unsigned char TimeOut[2] = { 0x0F, 0xA0 } ; // TimeOut for Retransmission (0xFA0 = 400ms) unsigned char RetryCount = { 10 } ; unsigned char RxMemSize = { 0x55 } ; // RX Data Memory sizes for Channels unsigned char TxMemSize = { 0x55 } ; // RX Data Memory sizes for Channels Write_Reg_W3150A ( MR, 0x80 ) ; // ñáðîñ âñåõ ðåãèñòðîâ Write_Reg_W3150A ( GAR0 , Gateway[0] ) ; // Çàïèñûâàåì GATEWAY Write_Reg_W3150A ( GAR1 , Gateway[1] ) ; Write_Reg_W3150A ( GAR2 , Gateway[2] ) ; Write_Reg_W3150A ( GAR3 , Gateway[3] ) ; Write_Reg_W3150A ( SHAR0, MAC[0] ) ; // Çàïèñûâàåì MAC Write_Reg_W3150A ( SHAR1, MAC[1] ) ; Write_Reg_W3150A ( SHAR2, MAC[2] ) ; Write_Reg_W3150A ( SHAR3, MAC[3] ) ; Write_Reg_W3150A ( SHAR4, MAC[4] ) ; Write_Reg_W3150A ( SHAR5, MAC[5] ) ; Write_Reg_W3150A ( SUBR0, Mask[0] ) ; // Çàïèñûâàåì MASK Write_Reg_W3150A ( SUBR1, Mask[1] ) ; Write_Reg_W3150A ( SUBR2, Mask[2] ) ; Write_Reg_W3150A ( SUBR3, Mask[3] ) ; Write_Reg_W3150A ( SIPR0, IP[0] ) ; // Çàïèñûâàåì IP ADDRESS Write_Reg_W3150A ( SIPR1, IP[1] ) ; Write_Reg_W3150A ( SIPR2, IP[2] ) ; Write_Reg_W3150A ( SIPR3, IP[3] ) ; Write_Reg_W3150A ( RTR0, TimeOut[0] ) ; Write_Reg_W3150A ( RTR1, TimeOut[1] ) ; Write_Reg_W3150A ( RCR, RetryCount ) ; Write_Reg_W3150A ( RMSR, RxMemSize ) ; Write_Reg_W3150A ( TMSR, TxMemSize ) ; #define TCP 1 Write_Reg_W3150A ( S0_MR , TCP ) ; Write_Reg_W3150A ( S0_PORT0, 0x0 ) ; Write_Reg_W3150A ( S0_PORT1, 0x80 ) ; Write_Reg_W3150A ( S0_CR, 1 ) ; // open socket while ( Read_Reg_W3150A (S0_SR) != 0x13 ) ; Write_Reg_W3150A ( S0_CR, 2 ) ; // server mode while ( Read_Reg_W3150A (S0_SR) != 0x14 ) ; далее, при обращении к этой микросхеме по сети, должен регистр S0_SR, равняться 0x17, но этого ни как не получается. В чем может быть дело?
  20. W3150A+

    они все сложные - куча h файлов. трудно разобраться. Что нибудь самодельное мне бы....
  21. W3150A+

    Подкиньте пожалуйста примеры кода для W3150A+. Попроще, для общего ознакомления с микросхемой... какой нибудь простенький пример, как выводть HTML страницу на экран браузера
  22. при установке VisualDSP 4.5 с системой WINDOWS VISTA, последняя требует какуюто таблицу XML и не хочет устанавливать... Что это такое? и как это обойти???
  23. Intel HEX файлы

    Спасибо, конечно! Но как ими пользоваться не могу разобраться. Как объединить два файла?
  24. Intel HEX файлы

    и как это сделать???