Jump to content

    

SergeyM

Свой
  • Posts

    68
  • Joined

  • Last visited

Everything posted by SergeyM


  1. Спасибо, я вроде накопал нормативные документы на эту тему. Тема закрыта.
  2. А как нибудь по точнее бы. Например средней сложности управления программа один вход/выход стоит столько. И зависит ли стоимость проги в целом от стоимости ПЛК со всеми подключаемыми модулями?
  3. Здравствуйте уважаемые разработчики! ЕСть возможность подзаработать на программировании ПЛК для одного предприятия, может кто подскажет как и на что операться в расчете стоимости на конечный продукт?
  4. Привет! Нужно научить декодер HSC515 работать с брелком, все собрано как написано в даташите и нажимается кнопка держится две секунды типа диод гаснет значет мы в режиме обучения, жмем на кнопку пульта чето там морнет жмем еще раз опять моргнет, далее не понятно толи мы вышли из режима обучения толи нет, короче нифига не работает. Может что в даташите не правильно понял при переводе толи фиг знает. Не можешь пролить свет на этот вопрос :)
  5. А примерчик как это реализовать?
  6. Народ нужна помощь в работе с ними, после откликов реальные вопросы :)
  7. Вообще убрать, то может что то не сработать. А вот на что заменить неизвестно, можно конечно попробовать на PCL но будет ли правильным результат, неизвестно. Программа написана для PIC16C56 и компилируется только для отладки и понимания самой проги, а затем будет перенесена на 627. По поводу посмотреть старые MPLAB'ы так их надо скачивать, если есть какая нибудь инфа то прошу выложить вкратце.
  8. Имеется старый исходник с нужным примером и нужно его скомпилировать. Компилирую в MPASM 3-й версии и он ругается на строку <Label> EQU $ ругается на $ в куске кода это место потом обращается к внешней памяти, в документации это текущее значение счетчика. Не пойму почему компилятор ругается?
  9. Народ привет! Возникла проблема, нужно передать код через радио канал. На данном этапе стоит задача отработать передачу данных напрямую через короткий проводок на макетке. Дак вот наблюдается нестабильность в получении кода, что на пике , что на авр. Может кто реализовывал типичную проблему, так не подскажите как лучше это сделать? Посылку произвожу манчестерским кодом со стартовым битом, по которому и определяю начало пакета. Вобщем вот два кода. Код кодера на пике: // Функция передачи пакета кода void code(unsigned int Low,unsigned int Hi) { unsigned int c; if(DataOutCount < PAKET){ if ((DataOutCount < HPAKET) && (DataReady == 12) ){ if (stop){ c = Low; LowDataOut >>= 1; //DataOutCount++; } } else if ((DataOutCount >= HPAKET) && (DataReady == 12)){ if (stop){ c = Hi; HiDataOut >>= 1; //DataOutCount++; } } switch (DataReady) { case 10: if (i < 4){ RB2 = 0; i++; } else{ i = 0; DataReady++; } break; case 11: DataReady++; RB2 = 1; break; case 12: if ((c & DataCheck) == DataCheck){ RB2 = 0; DataReady--; } else { if (i < 1){ stop = 0; RB2 = 0; i++; break; } else{ i = 0; stop = 1; DataReady--; } } //LowDataOut >>= 1; DataOutCount++; break; default: DataReady++; RB2 = 1; break; } } else{ RB2 = 1; DataShow = 0; DataReady = 0; DataOutCount = 0; } } Код декодера, реализовывал на пике и на авр, один к одному, изменив только переменные железа interrupt [EXT_INT0] void ext_int0_isr(void) { //SaveRTC = CurrentRTC;// Place your code here switch (MCUCR){ case 0x0E: GIMSK=0x80; MCUCR = 0x0F; // установили на фронт SaveRTC = ((Count & 0x0FF) << 8) + TCNT0; GIMSK=0xC0; break; case 0x0F: GIMSK=0x80; MCUCR = 0x0E; GIMSK=0xC0; CurrentRTC = ((Count & 0x0FF) << 8) + TCNT0; PeriodRTC = CurrentRTC - SaveRTC; SaveRTC = PeriodRTC; if (SaveRTC < 0) SaveRTC = 0 - SaveRTC; if ((SaveRTC > 700) && (SaveRTC < 1000)){// определили что это стартовый бит //PORTB = 0x01; DataInCount = PAKET; LowDataIn = 0; HiDataIn = 0; } if ((SaveRTC > 30) && (SaveRTC < 250) || (SaveRTC > 480) && (SaveRTC < 490)){ // это 1 if (DataInCount <= HPAKET) LowDataIn = (LowDataIn << 1) + 1; // получена 1 else if (DataInCount > HPAKET) HiDataIn = (HiDataIn << 1) + 1; if (--DataInCount == 0) DataReady = 1; } if ((SaveRTC > 250) && (SaveRTC < 480)){ // это 0 if (DataInCount <= HPAKET) LowDataIn = LowDataIn << 1; else if (DataInCount > HPAKET) HiDataIn = HiDataIn << 1; if (--DataInCount ==0) DataReady = 1; } //GIMSK=0xC0; SaveRTC = 0; break; } //CurrentRTC++; }
  10. У меня нет доступа на здешний FTP, если реч конечно о нем, ну а если о другом то всю ссылку можно.
  11. Если честно то я несмог найти ничего стоящего, как например то что вы дали. Если можно еще несколько ссылок.
  12. Хотелось бы побаловаться с управлением МК через пульт. А вот какой приемник и какой код загружать не знаю.
  13. Народ, шил я на Стерх 007. Биты не проверил и вот результат, во второй раз полезли и помоему бит защиты был включен, более мы прошить так и не смогли. Причем даже стирание давало ошибку.
  14. Привет! Зашили МК 2313 работал отлично, пока не захотели перепрошить не тут то было, похоже был случайно установлен бит защиты, а может и вчем другом проблема. Вопрос как можно обойти защиту и заново перепрограммировать МК.
  15. Значит говоришь все дело только в слове конфигурации. Ладно попробуем, завтра если что опять прийду.:)
  16. А HS это разве внутренний генератор. И потом вообще это слово нужно ли для данного программатора. Был случай шили 84 в программе в слове WDT был отключен, а в программаторе его не редактировали и что вы думаете ничто не работало т.к. постоянно срабатывал сторожевой таймер. Отключив его в программаторе все заработало. С 627 такие фишки не походят. Да и какие еще команды для слова конфигурации есть, для такого типа описания.
  17. Нет Code protected Disable Вобщем так генератор intRC RA6 clockout Watch dog Disable MCLR MCLR все биты защиты отключены
  18. Вообще код отработан в протеусе, да и к тому же моргать одним светодиодом не так сложно. Вот код ( MPLAB PICC LITE) # include <pic.h> #if defined(_16F627) #warning PIC16F627 with internal oscillator selected __CONFIG (0x03F70); //Конфигурация PIC16F627: //внутренний тактовый генератор, //RA6/RA7 используются для ввода/вывода //используется внешний сигнал сброса, //таймер PWRT включен, //сторожевой таймер выключен, //защита кода отключена, //детектор падения напряжения питания включен. #else #error Unsupported PICmicro MCU selected #endif // Глобальные переменные volatile unsigned int RTC = 0; //Счетчик реального времени //volatile unsigned char del = 0; static bit trisLED @ (unsigned) &TRISB*8+4; //биты управления светодиодом static bit LED @ (unsigned) &PORTB*8+4; static volatile bit T0IE @ (unsigned)&INTCON*8+5; static volatile bit T0IF @ (unsigned)&INTCON*8+2; const int LEDon = 0; // включить светодиод const int LEDoff = 1; // выключить void interrupt tmr0_unt(void) { if (T0IF){ T0IF = 0; RTC++; if ((RTC % 512)==0) LED = LED^1; } } void enableLED(int LEDstate) { LED=LEDoff; if (LEDstate) trisLED = 0; else trisLED = 1; } //Главная программа void main(void) { TMR0 = 0; OPTION = 0x0D1; T0IE = 1; GIE = 1; enableLED(1); while (1 == 1) // Бесконечный цикл { } } Причем пробовал даже без слова конфигурации компилировать и заливать никакого результата. Еще может кто знает как правильно работать с данным программатором, может я что не так делаю. Делаю так: Редактирую конфигурацию, зашиваю ее потом зашиваю хекс.
  19. Народ привет! Никто не сталкивался с такой проблемой, когда программируешь МК и он не работает, Программирование ведется на программаторе Стерх и находится на производстве. При конфигурировании внутреннего генератора и RA6 на CLOCKOUT, генерация происходит нормально, а вот на нужных выходах ничего не происходит. МК PIC16F627.
  20. Как я не заметил на этом сайте описание, ведья там был и он у меня в избранном ;) А вообще спасибо.