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

addi II

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

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

  • Посещение

Весь контент addi II


  1. Спасибо можно ссылку в личку доки на модбас, в нете есть только одно описание но он на спецификацию не похоже
  2. Здравствуйте! Парсирую посылки вручную modbus-rtu устройства И вроде по фрейму все складывается, и даже специальное ПО парсирует пасылку, но я на нижнем уровне не могу Проблема в том что в мониторе я виже hex значения которые далее никак не интерпретируются Проблема в полях Id устройства и версии ПО, она вообще там с точкой! Перевод hex в ascii не дают должного(как представляет специальное верхнее ПО)представления Подскажите пожалуйста в чем хитрость? Спасибо!
  3. спасибо попробую, еще хотел спросить как подключить цепь GND к внутреннему слою "PowerLayer" Переход через переходные не осуществляется и в менеджере нет возможности подключить цепь AD 16.0.6
  4. организованы как intlib Добавляю по одной, одинаковых нет, только несколько разных самое интересное что "вчера" компоненты оных виделись а сегодня нет
  5. Здравствуйте! Подскажите пожалуйста как устранить проблему Периодически пропадают символы библиотеки Списке остается только один "component_1" и все И при выборе компонента из списка инсталлированных библиотек просмотр не дает символа и он в итоге не кладется на схему и при этом нет никаких ошибок
  6. Спасибо, так и есть, все нормально
  7. Здравствуйте! Полигон для земли сигнальные проводники не заливает по правилам Заливает почти до КЗ https://dropmefiles.com/uQ4en Когда как правила этого не позволяют https://dropmefiles.com/OiXNb Чтобы я не делал с менеджером и с правилами ничего не помогает, при этом это проверялась на разных по версии альтиумов, разных ПК и разных ОС Раньше такое было но в менеджере удавалось сделать как надо, сейчас менеджер не помогает Прошу подсказать в чем может быть причина, проект архивный, с библиотекой и компилируется
  8. не совсем понял что за коэффициент - " (((u32)1u << 24) / 100u) + (1u << 15) >> 16; " получается
  9. проблема, - как реализовать правильно на си я уже реализовал, но видимо не правильно вот так: volatile unsigned char tv,tvl,tvh; volatile unsigned char PWM1_value; volatile char data1[16]; /* data1[4] - первый ASCII сивол десятичного значения = */ /* data1[5] - второй ASCII сивол десятичного значения = */ tvl = data1[4] - 0x30; tvh = data1[5] - 0x30; tvl= tvl *20; tvh = tvh*5; tv = tvl + tvh; PWM1_value = tv; PWM1_update();
  10. Здравствуйте! Подскажите пожалуйста как лучше сделать, я сделал, но видимо не правильно и значения не совсем совпадают(например 50 % по факту 40, 99 по факту 90) Приходят значения периода заполнения ШИМ в процентах, от 0 до 99 Необходимо преобразовать в значение аппаратного регистра сравнения от 0 до 255 прошу подсказать Спасибо!
  11. все хорошо, кроме поддерживаемых ОС, драйвера под Ws10 для MB26.14 отсутсвуют
  12. Здравствуйте ! Есть необходимость использовать старую PCI плату MB26.14. И оказалось что компа подходящего нет . И где купить сейчас также проблема. В связи с этим прошу подсказать где можно купить юр лицу новый комп с PCI Спасибо !
  13. RPI 4B 3D

    странно..., скачалось, спасибо!
  14. RPI 4B 3D

    как я понял в этих источниках все платное, мне не жаль, просто сама процедура оплаты немного напрягает
  15. RPI 4B 3D

    Здесь как раз регистрация!
  16. RPI 4B 3D

    Здравствуйте! Заложил в проект малинку и когда дошло дело до сборочника не нашел в нете, и на гитхабе, в том числе, степ малинки Думал уже давно все уже нарисовали и выложили, оказалось что нет..( Может у кого найдется моделька или подскажите где искать? П.С. ни на каких 3D порталах не зареген
  17. Здравствуйте ! Есть простой код, написанный под МК который не поддерживает отладку Поэтому если что-то не работает понять сложно В коде присутствует три условия - 3 парсинга команд по UART Прошу посмотреть его на предмет того почему условия больше 1 не работают По отдельности если компилируешь каждое условие, оно работает Но когда добавляешь хотя бы одно, - перестает Спасибо! void IRQ_uart_rx_tx() { _di_(); status_uart = SP_STAT0; //?????????? ??????? ??????? if (status_uart&0x40) //???????????? ?????????? ?? ?????? { ByteReceived = SBUF_RX0; temp = 1; } _ei_(); } volatile unsigned char temp=0; extern unsigned char ByteReceived; extern unsigned char status_uart ; volatile unsigned char sts; volatile unsigned char c0_reg; volatile unsigned char cntb; volatile unsigned char cmd; volatile unsigned char tr_s; volatile unsigned char i; volatile unsigned char j; volatile unsigned char datah; volatile unsigned char datal; volatile unsigned char cntglob=0; volatile char data1[6]; volatile char data2[16]; volatile char* data3; volatile char* data4; volatile char* data5; volatile unsigned int adr = 0x8000; volatile char* strres ; volatile char cmd1[] = "!01-SPU-1000\r"; volatile char cmd2[] = "!02-SPU-1000\r"; volatile char reccmd1[] = "$01M\r"; volatile char error[] = "error"; volatile char reccmd2[] = "$02M\r"; volatile char toend[] = ">AA\r"; volatile char toend3[] = ">AA\r"; volatile char reccmd3[] = "#01S3\r"; volatile char reccmd10[] = "#01S7\r" ; volatile char reccmd11[] = "#01S8\r" ; volatile char reccmd4[] = "#02S3\r"; volatile char toend4[] = "!013\r"; volatile char toend5[] = "!023\r"; volatile char toend10[] = "!ADC value:\r"; volatile char toend11[] = "!Stop obezgaz!:\r"; unsigned char tempo=0xFF; volatile uint16_t pref, aa,b,dd,n,d; volatile unsigned char debugout; volatile unsigned char temp3, kk; volatile unsigned char tempd; extern unsigned char ByteReceived; void main() { unsigned char c, tmp2; __NOP(); __NOP(); __NOP(); __NOP(); pref=0, aa=0,b=0,dd=0,n=0,d=0; temp3 = 0; _ei_(); timer1_init() ; USART0_Init(SP_MODE_1); tempv = 0; sts=0; cntb=0; cmd=0; tr_s=0; i=0; j=0; tempd = 0; debugout =0; c0_reg = 0; IOPORT1 = 0x00; IOPORT2 = 0x00; IOPORT3 = 0x00; IOPORT4 = 0x00; IOPORT1 = 0xFF; IOPORT2 = 0xFF; IOPORT3 = 0xFF; IOPORT4 = 0xFF; IOPORT2 &= ~0x80; IOPORT1 &= ~0xFF; ByteReceived = 0; temp = 0; status_uart =0; IOPORT1 = 0xFF; cntglob = 0; IOPORT2 |= 0x80; while(1) { if(temp == 1) { if((ByteReceived == 0x23) && (sts == 0)) { cntb = 0; sts = 2; data2[cntb] = ByteReceived; cntb++ ; ByteReceived = 0x00; temp = 0; } else { if((sts==2) && ((ByteReceived == 0x0d) || (ByteReceived == 0x0D)) && cntb == 5) { data2[cntb ] = ByteReceived ; data2[cntb+1] = '\0'; if(strcmp((const char *)data2,(const char *) reccmd3) == 0 ) { debugout = 0x08; } sts = 0; temp = 0; ByteReceived = 0x00; } else { if((sts==2) && (cntb <5)) { data2[cntb] = ByteReceived; cntb++ ; temp = 0; ByteReceived = 0x00; } } } if((ByteReceived == 0x23) && (sts == 0)) { cntb = 0; sts = 3; data2[cntb] = ByteReceived; cntb++ ; ByteReceived = 0x00; temp = 0; } else { if((sts==3) && ((ByteReceived == 0x0d) || (ByteReceived == 0x0D)) && cntb == 5)//(cntb==(strlen("#AABDD")))) { data2[cntb ] = ByteReceived ; data2[cntb+1] = '\0'; if(strcmp((const char *)data2,(const char *) reccmd10) == 0 ) { debugout = 0x11; } sts = 0; temp = 0; ByteReceived = 0x00; } else { if((sts==3) && (cntb <5))//(cntb<(strlen("#01s3")))) { data2[cntb] = ByteReceived; cntb++ ; temp = 0; ByteReceived = 0x00; } } } if((ByteReceived == 0x23) && (sts == 0)) { cntb = 0; sts = 4; data2[cntb] = ByteReceived; cntb++ ; ByteReceived = 0x00; temp = 0; } else { if((sts==4) && ((ByteReceived == 0x0d) || (ByteReceived == 0x0D)) && cntb == 6) { data2[cntb ] = ByteReceived ; data2[cntb+1] = '\0'; if(strcmp((const char *)data2,(const char *) reccmd11) == 0 ) { debugout = 0x12; } sts = 0; temp = 0; ByteReceived = 0x00; } else { if((sts==2) && (cntb <6)) { data2[cntb] = ByteReceived; cntb++ ; temp = 0; ByteReceived = 0x00; } } } } else { if((debugout== 0x08) && (sts == 0)) { IOPORT2 &= ~0x80; tr_s = ((unsigned char)sizeof(toend4)) - 1; j = 0; do { SBUF_TX0 = toend4[j]; do{status_uart = SP_STAT0;} while(!(status_uart & 0x08)); tr_s --; j++; } while(tr_s); sts = 0; while(!(status_uart & 0x08)); IOPORT2 |= 0x80; debugout = 0; tempd = 1; } if((debugout == 0x11) && (sts == 0)) { IOPORT2 &= ~0x80; tr_s = ((unsigned char)sizeof(toend10)) - 1; j = 0; do { SBUF_TX0 = toend10[j]; do{status_uart = SP_STAT0;} while(!(status_uart & 0x08)); tr_s --; j++; } while(tr_s); sts = 0; cntb = 0; debugout = 0; while(!(status_uart & 0x08)); adr = 0xC000; *(volatile short*)(adr) = 0x01; datah = SPI_Send(0x01); datal = SPI_Send(0x02); Uart[1] = datah; Uart[0] = datal; tr_s = ((unsigned char)sizeof(Uart)) - 1; j = 0; do { SBUF_TX0 = Uart[j]; do{status_uart = SP_STAT0;} while(!(status_uart & 0x08)); tr_s --; j++; } while(tr_s); sts = 0; cntb = 0; debugout = 0; while(!(status_uart & 0x08)); IOPORT2 |= 0x80; } if((debugout== 0x12) && (sts == 0)) { IOPORT2 &= ~0x80; tr_s = ((unsigned char)sizeof(toend11)) - 1; j = 0; do { SBUF_TX0 = toend11[j]; do{status_uart = SP_STAT0;} while(!(status_uart & 0x08)); tr_s --; j++; } while(tr_s); sts = 0; while(!(status_uart & 0x08)); IOPORT2 |= 0x80; debugout = 0; adr = 0xC004; *(volatile short*)(adr) = 0xFF; } } } }
  18. Спасибо а сколько таких ads1263 тогда надо ставить? Еще вопрос, также нужно окучить все возможные термопары, - L,J,N,K,S,R,B,T,A-1,A-2,A-3 Подойдет ли также ads1263? Может можно одной типовой схемой обойтись на ОУ и цифровым сопротивлением для подгона делителя?
  19. Здравствуйте! Стоит не простая задача сделать аналоговое чтение сразу всех возможных потенциометров, а именно: 50M, Cu50, 50П, Pt50, Ni100, 100M, Cu100, 100П, Pt100, Ni500, 500M, Cu500, 500П, PT500, Ni1000, 1000M, Cu1000, 1000П, Pt1000, TCM гр. 23 Как я понимаю нужно как то мультиплицировать 50,100,500, 1000 сопротивления Подскажите пожалуйста не огородное решение Спасибо!
  20. Здравствуйте делаю схему которое в изделие сможет поместиться на основе 2-х плат Прошу подсказать как мне делать проект чтобы была потом возможность перевести все в 3Д Спасибо
  21. имелось ввиду без использования sdio.h
×
×
  • Создать...