UVV

Members
  • Публикации

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

  • Посещение

Репутация

52 Обычный

О UVV

  • Звание
    Живу я тут

Информация

  • Город
    Кстово

Электроника

  • Стаж в электронике
    Не связан с электроникой
  1. @DarkAlucard а чего шумы? будут куда им деться. нет таких импульсников без шумов. этот вариант самый лучший за всю историю этого форума.
  2. Нужна помощь в программировании

    а дефы то зачем? для портов
  3. ИИП на IR2161

    @Денис Поляков все микросхемы серии IR как был риск сквозного тока через ключи так и останется
  4. ИИП на IR2161

    @Денис Поляков микросхема открыла ключи оба одновременно
  5. а прошивка то он него от 877А?
  6. Нужна помощь в программировании

    интересно автор сделал выводы положительные для себя
  7. Нужна помощь в программировании

    @Starina48 MPLAB 8.30 на HI-TECH PICC или как там просто не кто не знает и не пользуется. @Starina48 ждите может кто и зайдёт знающий HI-TECH PICC. Я когда начинал изучать МК то первым делом начал с HI-TECH PICC но потыкав эту среду понял что уж очень всё замудрённо. Начал искать альтернативу.
  8. Нужна помощь в программировании

    попробуй открыть с вот так галочку сними
  9. Нужна помощь в программировании

    @Starina48 есть нормальная среда разработки с описанием на Русском языке mikroC_pic.chm
  10. Pic. Общие Вопросы

    да? ну ладно. вообще надо на 32 pic переходить я его ещё не изучал
  11. Pic. Общие Вопросы

    @IMXO этот вариант тоже надо отработать и выложить. Народ тоже нуждается в энкодерах. @IMXO может отдельную тему создать и закрепить про энкодеры?
  12. Pic. Общие Вопросы

    Так как я тупой и не смог сам осилить программу обработки команд энкодера я спиз... у кого то sbit LCD_RS at RD2_bit; sbit LCD_EN at RD3_bit; sbit LCD_D7 at RD7_bit; sbit LCD_D6 at RD6_bit; sbit LCD_D5 at RD5_bit; sbit LCD_D4 at RD4_bit; sbit LCD_RS_Direction at TRISD2_bit; sbit LCD_EN_Direction at TRISD3_bit; sbit LCD_D7_Direction at TRISD7_bit; sbit LCD_D6_Direction at TRISD6_bit; sbit LCD_D5_Direction at TRISD5_bit; sbit LCD_D4_Direction at TRISD4_bit; char txt[4]; unsigned short New=0, EncState=0, EncData=0, t_0=0, New_0=0; void main() { TRISA=TRISC=TRISD=TRISE=0; PORTA=PORTC=PORTD=PORTE=0; TRISB=0XFF; OPTION_REG=0B0111111; ADCON1=0B0000110; Lcd_Init(); Lcd_Cmd(_LCD_CLEAR); Lcd_Cmd(_LCD_CURSOR_OFF); while(1) { ByteToStr(t_0, txt); Lcd_Out(1,1,txt); if((New = PORTB >>6)!=New_0) { New_0=PORTB>>6; switch(EncState) { case 2: { if(New == 3) EncData++; if(New == 0) EncData--; break; } case 0: { if(New == 2) EncData++; if(New == 1) EncData--; break; } case 1: { if(New == 0) EncData++; if(New == 3) EncData--; break; } case 3: { if(New == 1) EncData++; if(New == 2) EncData--; break; } } EncState = New; if(EncData==252) { t_0++; //сюда пихать что надо выполнить при повороте вала туда энкодера EncData=0; } if(EncData==4) { t_0--; //сюда пихать что надо выполнить при повороте вала сюда энкодера EncData=0; } } } } да и не надо не какой дребезг устранять у энкодера и так работает в железе проверенно тут в архиве всё для протеуса и MikroC encoder.rar
  13. Pic. Общие Вопросы

    Откомпелировал этот код sbit LCD_RS at RD2_bit; sbit LCD_EN at RD3_bit; sbit LCD_D7 at RD7_bit; sbit LCD_D6 at RD6_bit; sbit LCD_D5 at RD5_bit; sbit LCD_D4 at RD4_bit; sbit LCD_RS_Direction at TRISD2_bit; sbit LCD_EN_Direction at TRISD3_bit; sbit LCD_D7_Direction at TRISD7_bit; sbit LCD_D6_Direction at TRISD6_bit; sbit LCD_D5_Direction at TRISD5_bit; sbit LCD_D4_Direction at TRISD4_bit; char txt[4]; unsigned short Count=0, Err_c=0, Enc_state=0, t=0; void main() { TRISA=TRISC=TRISD=TRISE=0; PORTA=PORTC=PORTD=PORTE=0; TRISB=0XFF; OPTION_REG=0B01111111; ADCON1=0B0000110; Lcd_Init(); Lcd_Cmd(_LCD_CLEAR); Lcd_Cmd(_LCD_CURSOR_OFF); //============================================================================== while(1) { ByteToStr(t, txt); Lcd_Out(1,6,txt); /*if((t_0=PORTB>>6)^ 0x03) { }*/ Enc_state <<= 2; //Ïîìåùàåì íîâîå â ñòàðîå Enc_state |= PORTB; switch (Enc_state & 0x0F) { case 0b00000000 : break; //íå èçìåíèëîñü case 0b00000001 : Count--; break; case 0b00000011 : Err_c = Err_c + 1; //çàïðåùåííîå ñîñòîÿíèå break; case 0b00000010 : Count++; break; case 0b00000110 : Err_c = Err_c + 1; //çàïðåùåííîå ñîñòîÿíèå break; case 0b00000111 : Count--; break; case 0b00000101 : break; //íå èçìåíèëîñü case 0b00000100 : Count++; break; case 0b00001100 : Err_c = Err_c + 1; //çàïðåùåííîå ñîñòîÿíèå break; case 0b00001101 : Count++; case 0b00001111 : break; //íå èçìåíèëîñü case 0b00001110 : Count--; break; case 0b00001010 : break; //íå èçìåíèëîñü case 0b00001011 : Count++; break; case 0b00001001 : Err_c = Err_c + 1; //çàïðåùåííîå ñîñòîÿíèå break; case 0b00001000 : Count--; break; } if (Count == 8) // Åñëè áûë øàã ýíêîäåðà âëåâî { t--; Count = 4; } else if (Count == 0) // Åñëè áûë øàã ýíêîäåðà âïðàâî { t++; Count = 4; } } } https://youtu.be/vQyoYVcd4A0 как то не считывает он данные с энкодера
  14. Pic. Общие Вопросы

    Enc_state <<= 2; //Помещаем новое в старое Enc_state |= PORTB; //Проверяем входные линии switch (Enc_state & 0x0F) { case 0b00000000 : break; //не изменилось case 0b00000001 : Count--; break; case 0b00000011 : Err_c = Err_c + 1; //запрещенное состояние break; case 0b00000010 : Count++; break; case 0b00000110 : Err_c = Err_c + 1; //запрещенное состояние break; case 0b00000111 : Count--; break; case 0b00000101 : break; //не изменилось case 0b00000100 : Count++; break; case 0b00001100 : Err_c = Err_c + 1; //запрещенное состояние break; case 0b00001101 : Count++; case 0b00001111 : break; //не изменилось case 0b00001110 : Count--; break; case 0b00001010 : break; //не изменилось case 0b00001011 : Count++; break; case 0b00001001 : Err_c = Err_c + 1; //запрещенное состояние break; case 0b00001000 : Count--; break; } if (Count == 8) // Если был шаг энкодера влево { .............. // то действие А Count = 4; } else if (Count == 0) // Если был шаг энкодера вправо { .............. // то действие Б Count = 4; } Err_c = Err_c + 1; //запрещенное состояние Err_c это переменная или нет если переменная то где что дальше с ней делается за циклом switch? если энкодер подключен к двум входам порта Б то откуда берутся изменения в 0b00001101 в третьем и четвертом бите. то есть к каким пинам по счёту энкодер подключен
  15. @Falconist почему можно и электролиты по 200 Вольт а плёнку воткнуть между средней точкой и выводом трансформатора. @Orlovskiy если 10 А 400 В то выходит 4000 Ватт делай полный мост. Не встречал на такую мощность полумостовой схемы инвертора.