Jump to content

DarkDigger

Members
  • Posts

    44
  • Joined

  • Last visited

About DarkDigger

  • Birthday 12/08/1987

Информация

  • Пол
    Мужчина
  • Город
    Москва

Электроника

  • Стаж в электронике
    1-2 года

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

DarkDigger's Achievements

Apprentice

Apprentice (3/14)

  • Collaborator
  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

6

Reputation

  1. Никогда не сталкивался с подобным, не знал как это сделать. За направление спасибо. Нет, не запишется. Проверенно на отладке. С Вами всё в порядке?
  2. Если кому интересно: необходимо подключить библиотеку #include <avr/pgmspace.h> создавать глобальные переменные вида: const char str_1[] PROGMEM="Password: "; копировать строку в озу strcpy_P(buf, str_2); и работать уже с buf....
  3. Выхлопом компилятора. И глюками, когда компилятор говорил что память почти всё... Можно ли как-то освободить эту память?
  4. Здравствуйте, есть функция, принимающая указатель (отправка данных в сеть,через w5500): void w5500_send_array(unsigned int addr, unsigned char bsb, char *data, unsigned char count){ unsigned char cont_phase=0; //фаза контроля SPI_PORT&=~(1<<SPI_SS); //вкл w5500 SPDR = msb_of_int(addr); while(!(SPSR&(1<<SPIF))); SPDR=lsb_of_int(addr); while(!(SPSR&(1<<SPIF))); cont_phase=(bsb<<3)|(1<<2); SPDR=cont_phase; while(!(SPSR&(1<<SPIF))); for (unsigned char i=0; i<count; i++){ SPDR=data[i]; while(!(SPSR&(1<<SPIF))); } SPI_PORT|=(1<<SPI_SS); } вызывает её вот эта фунцция: void w5500_tx(unsigned char socket, char *text, unsigned char count){ unsigned int addr=0; unsigned char sock_bsb=0; sock_bsb=socket*4+1; addr=(w5500_get(0x24,sock_bsb)<<8)|w5500_get(0x25,sock_bsb); //читаем Sn_TX_WR w5500_send_array(addr,(socket*4+2),text,count); w5500_send(0x24,sock_bsb, msb_of_int(addr+count)); w5500_send(0x25,sock_bsb, lsb_of_int(addr+count)); w5500_send(0x01,sock_bsb, SEND); } В тексте программы, отправку данных осуществляю с помощью вызова функции: w5500_tx(0,"Blablabla\n\r",11); //пример Массив "Blablabla\n\r" отправляется сначала в функцию w5500_tx затем в w5500_send_array. Где под конец и должен умереть. Но нет, он остаётся в ОЗУ... Я понимаю, что делаю что-то не так. Если много текста необходимо отправить в сеть, ОЗУ просто не хватает. Как по завершению передачи данных освободить память?
  5. Здравствуйте. Ищу настенный термостат с возможностью управления через локальную сеть: вёб морда, ssh или telnet через wifi или ethernet (если надо дотяну витую пару). Все варианты что я нашёл работают через свои какие-то сервера и только через приложение на телефоне.
  6. Нет, я внимательно проверил, и тестировал именное 1250. В общем я нашёл и протестировал (если кому надо, могу выложить видео с тестом) нормальное решение для гальванической развязки i2c, 1-ware и подобных интерфейсов. MAX14933
  7. Спасибо, но не работает... При выборе "неметал" пропадает выбор имени цепи, и контактная площадке ничего не подведёшь... Это только у меня такой геморой?
  8. Здравствуйте, обновился до 6 версии... Раньше в редакторе ПП, в свойствах контактной площадке был выбор на каких слоях меди печатать, теперь выбор стал просто идиотским (см. картинку) Контактная площадка соединена только снизу, и сверху печатать мне не нужно. Выбрал: "Только сединённые слои", но печатает сверху просто не подключенную площадку. Может кто-нибудь сталкивался с такой проблемой?
  9. А Вы считаете за дс-дс 500 рэ это в порядке вещей? Или поиск того же товара, но в другом месте и за меньшие деньги это глупо? Наверное вы сын/дочь олигарха, по крайней мере по образу мышления. Вопрос вот в чём: на али написано: "100% новый и оригинальный". Чьё производство? TI?
  10. Здравствуйте. Нужна такая микруха, но в чип и дипе стоит как-то несерьёзно дорого. Как вы думаете, на али оригинал (TI)? Я понимаю, что на 100% точно никто не знает, просто нужен совет) Ссылка
  11. Yurkin2015, hasl спасибо огромное, разобрался.
  12. Здравствуйте. Споткнулся на ровном месте на элементарном вопросе. Большая просьба разъяснить что я делаю не так. микроконтроллер: atmega8 компилятор: avr-gcc (GCC) 10.2.0 Среда разработки: Eclipse Version: 2020-03 (4.15.0) OC: Arch linux 5.11.11 Но это не важно. Проблема (возможно в моей голове проблема) возникает и с компилятором gcc в моей системе. Суть. Обнуление 7 бита порта D PORTD=~(1<<7); //вроде простая операция. Я понимаю что проще PORTD=0b0111 1111; но цифра 7 это дефайн в начале библиотеке И вот варнинг: ../LCD.h:23:15: warning: unsigned conversion from 'int' to 'uint8_t' {aka 'volatile unsigned char'} changes value from '-129' to '127' [-Woverflow] Что за? Ок. Эксперимент. unsigned char tmp=0; tmp=~0xff; Причём такую простую операцию я попробовал сделать и скомпилировать не под AVR, а под x86 Варнинг тот же ../LCD.h:24:6: warning: unsigned conversion from 'int' to 'unsigned char' changes value from '-256' to '0' [-Woverflow] Я так понимаю, что число 0b1111 1111 после побитовой инверсии преобразуется в число 0b0000 0000 и присваивается переменной tmp. Откуда предупреждение? Ок, если сделать так: unsigned char tmp=0; tmp=0xff; tmp=~tmp; Всё ок. Что не так?
  13. Не напрямую конечно, через транзистор, с защитным диодом и т.д. SPI mode 0 будет нормально работать с этой микросхемой?
×
×
  • Create New...