Jump to content
teapot

Код Манчестер На Pic12F675 (Mikroc Pro)

Recommended Posts

Здравствуйте, уважаемые.

Написал код манчестера использя встроеную библиотеку mikroc pro для PIC16F877 (на приемнике и передатчике). Работает все отлично.

Появилась необходимость сделать передатчик на PIC12F675. Но вот тот же код переписать под этот МК неудалось. (нет генирации на GP0/ тестил в протеусе)

Есть сомнения в указании портов при конфигурации (выделил жирным)

/* --------------- Конфигурация МК под манчестер-код ------------------------*/
sbit MANTXPIN at [b]GP0[/b]_bit;
sbit MANTXPIN_Direction at [b]TRISIO0[/b]_bit;
/*---------------------- Конец конфигунации ---------------------------------*/
short a;
void main() {
a=123;
Man_Send_Init();				 // Инициализация передатчика
while (1) {					 // Бесконечный цикл
Man_Send(0x0B);			 // Отправка стартового бита
Delay_ms(100);				 // Пауза

Man_Send(a);				 // Отправка значения а
Delay_ms(90);				 // Пауза

Man_Send(0x0E);			 // Отправка конечного бита сообщения
Delay_ms(500);				 // Пауза
}
}

Есть какие мысли по поводу?

Edited by teapot

Share this post


Link to post
Share on other sites
Guest

два вопроса:

а если программно подёргать ножкой - есть в протеусе?

если на другую ногу назначить - дёргает?

Если вначале указать эту ногу вручную выходом - помогает? ))

в ассме добавьте управление TRIS

Edited by Guest

Share this post


Link to post
Share on other sites

Выскажу предположение, что GP0 настроен как аналоговый.


Так ку или не ку ?!

Share this post


Link to post
Share on other sites

Вебинар "Разбор новых уникальных модулей FMAC и CORDIC в микроконтроллерах общего назначения STM32G4" (15.07.2020)

Компания КОМПЭЛ приглашает вас принять участие в вебинаре 15.07.2020, посвященном новому семейству микроконтроллеров общего назначения – STM32G4. Вебинар рассчитан на технических специалистов и тех, кто знаком с основами цифровой обработки сигналов. Мы разберем алгоритм работы CORDIC, а также рассмотрим пример создания цифрового фильтра на базе FMAC.

Зарегистрироваться на вебинар

повесил в протеусе только светодиод через резистор и вшил код ниже

void main() {
TRISIO.GP2 = 0;
GPIO.GP2 = 0;
while(1)
{
GPIO.GP2 = 1;
Delay_ms(500);
GPIO.GP2 = 0;
Delay_ms(500);
}
}

Эффекта НОЛЬ. Проблема в том что с этим МК сталкиваюсь впервые и как он должен работать - не имею понятия, собственно с синтаксисом для него та же ерунда (копаю нет, складываю обрывки инфы в кучу)

Edited by teapot

Share this post


Link to post
Share on other sites
                     

Новые контроллеры VIPerPLUS для ИП – видео и материалы вебинара STMicroelectronics

Видеозапись и материалы вебинара ST о семействе AC/DC регуляторов VIPerPLUS производства компании STMicroelectronics. Инженерами ST было детально рассмотрено новое семейство микросхем VIPerPLUS со встроенным транзистором, их возможности и топологии применения. Продемонстрировано испытание из лаборатории ST в Праге и моделирование в среде E-DesignSuite.

Подробнее

АЦП выключи! И компаратор тоже.

Edited by koms45

Так ку или не ку ?!

Share this post


Link to post
Share on other sites
                     

Конденсаторы ECWFG от Panasonic: теперь и для высоковольтных применений

Компания Panasonic анонсировала существенное расширение серии пленочных конденсаторов ECWFG: на сегодняшний день диапазон рабочих напряжений серии составляет 630…1100 В (DC). Серия ECWFG поддерживает уникальную функцию микропредохранителей.

Подробнее

Guest

дада! в нём же АЦП, я с 629 работал...

по умолчанию у 675 включен как аналоговый!

как выключать в pic - не помню ((

Share this post


Link to post
Share on other sites

СМCON = 7

ADCON0.0 = 0

void main() {
CMCON = 7;
ADCON0 = 0;
TRISIO.GP0 = 0;
GPIO.GP0 = 0;
while(1)
{
GPIO.GP0 = 1;
Delay_ms(500);
GPIO.GP0 = 0;
Delay_ms(500);
}
}

реакция та же - никакая=)

если прописать ADCON0.0 = 0 не компилируется

Можно ли поподробней, за что отвечает каждая из команд?

Edited by teapot

Share this post


Link to post
Share on other sites

Попробуй ADCON0.ADON = 0. Я Си на дух не переношу.


Так ку или не ку ?!

Share this post


Link to post
Share on other sites

Вот настройка для 675

WPU = 0;
IOCB = 0;
CMCON = 0b00000111;
VRCON = 0;
ADCON0 = 0;
ANSEL = 0;
TRISIO = 0b00010000;
GPIO = 0b00000000;

Главное ANSEL

Edited by korsaj

Share this post


Link to post
Share on other sites

Вот настройка для 675

...

Главное ANSEL

Не катит.

void main() {
WPU = 0;
IOCB = 0;
CMCON = 0b00000111;
VRCON = 0;
ADCON0 = 0;
ANSEL = 0;
TRISIO = 0b00010000;
GPIO = 0b00000000;
TRISIO.GP0 = 0;
GPIO.GP0 = 0;
 while(1)
   {
   GPIO.GP0 = 1;
   Delay_ms(500);
   GPIO.GP0 = 0;
   Delay_ms(500);
   }
}

Может с самим кодом что нетак?

Share this post


Link to post
Share on other sites

Все оказалось, как обычно, бонально просто:

В настройках проекта, перевел Master Clear Enable в положение Disable (было Enable) - отключил MCLR

Икод заработал без дополнительных настроек.

void main() {
 while(1)
    {
    GPIO.GP0 = 1;
    Delay_ms(500);
    GPIO.GP0 = 0;
    Delay_ms(500);
    }
}

Предпологаю, что если не выключить MCLR в настройках, а при пайке притянуть ногу МК отвечающую за MCLR через резистор на киллоом 10 на "+", то же должно заработать.

Кстате, Манчестер то же дпошел=)

Вопрос исчерпан. Всем спасибо!

Share this post


Link to post
Share on other sites

В Протеусе тоже подтягивать на + надо.


Все можно наладить, если вертеть в руках достаточно долго!

Если ничто другое не помогает, прочтите, наконец, инструкцию!

Share this post


Link to post
Share on other sites
Икод заработал без дополнительных настроек
Это только в протеусе. В железе наступите на грабли.

Share this post


Link to post
Share on other sites
Икод заработал без дополнительных настроек
Это только в протеусе. В железе наступите на грабли.

Буду иметь ввиду при настройке железа. Спасибо.

Share this post


Link to post
Share on other sites

Я тоже пробовал реализовать передачу данных по радиоканалу(manchester) используя встроенную библиотеку в MikroC. Так вот,в протеусе все работает, в железе при проводном соединении тоже работает, а вот по радиоканалу только на расстоянии 10 см и то не стабильно. При этом на этих же радиомодулях другая система ду работает отлично на расстоянии до 30 метров.

То ли в библиотеке заложен алгоритм не стойкий к помехам , не пойму. Отзовитесь у кого есть опыт работы в этом направлении .

Share this post


Link to post
Share on other sites

Рабочий код.

void main()
{
CMCON=0X07;	 //выключает компоратор
ANSEL=0;	    //все порты как цифровые
TRISIO=0;	   //все порты настроены на выход кроме GP3
GPIO=0;
while(1)
{
GPIO++;
GPIO.GP4=~GPIO.GP4;
GPIO.GP5=~GPIO.GP5;
Delay_ms(100);
}
}

Я тоже пробовал реализовать передачу данных по радиоканалу(manchester) используя встроенную библиотеку в MikroC. Так вот,в протеусе все работает, в железе при проводном соединении тоже работает, а вот по радиоканалу только на расстоянии 10 см и то не стабильно. При этом на этих же радиомодулях другая система ду работает отлично на расстоянии до 30 метров.

То ли в библиотеке заложен алгоритм не стойкий к помехам , не пойму. Отзовитесь у кого есть опыт работы в этом направлении .

Код Манчесте реализован программно что не есть хорошо.

Данный способ я сразу отложил в сторону и не зря.

За основу взял передачу USART по радио каналу.

Самое хорошее это что USART аппаратный и можно работать в прерывании.

Максимум добился на расстоянии 500 метров в лесу уверенного приёма с антеннами из обрезка провода 17 см на частоте 433.92.

Использовал вот эти модули DRA889TX, DRA887RX.

Датиши.rar

Share this post


Link to post
Share on other sites

Это почему же программная реализация Манчестера не есть хорошо??? Другое дело ,что в MikroC это реализовано криво .

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • Добрый день, нужно подключить к сварочному трансформатору управление от микроконтроллера (через реле, оптопару...) . Производитель трансформатора дал схему с использованием МТТ500-12 (приложена). Проблема в том, что трансформатор двухфазный, линейное напряжение 380В, нейтраль не используется... Управление через первичную обмотку (ток до 100А), ток во вторичной до 22кА. Фазовая регулировка не нужна. У МТТ500-12 напряжение отпирающее постоянное напряжение управления 3В, ток 200мА. Как подключить ?
    • Ставте фильтра по выходу.....а что вы хотели в импульсниках? Такую-же красоту как и на железных трансформаторах? Если сильно постараться, можно добиться хороших результатов.  
    • Смотря, что за цель, а то, может и бесплатно кто разработает "под ключ". 
    • Думаю нашел дешевый вариант изготовление регулируемого блока питания. https://vrtp.ru/index.php?showtopic=14969&hl=Р Сощный Р вЂР Сџ&st=1770 Зачем делать ИИП , а потом к нему еще цеплять DC-DC , если можно сразу ИИП сделать регулируемым. Вчера собрал на работе . иип 24в 6а с али + dc - dc с али  = нагрузка 0.5а и выставил напряжение на dc dcd - 1 v = пульсации - выбросы до 500мв ( дросселя никакие похоже) ужас( еще и dc-dc вносит свою лепту  
    • При запуске на доли секунды пусковой ток должен быть около 1 ампера или чуть больше ...это нормально....для прогретого унч 7ки Если смотреть мультиком пусковой ток возможно будет меньше... осцилом можно увидеть скачёк  около 1.5 Ампера... важно что бы во времяни этот скачёк не превышал 1..2 секунды и сразу шёл на спад  По иип не скажу.... нет опыта.... возможно большой пусковой ток даёт сам БП ..
    • Во как. А начиналось все с логического пробника... Зачем тебе 1 миллиГерц? Или это был миллиграммцентнер (мгц)? Что ты хочешь узнать своей схемой про оптический энкодер? Какой планируется алгоритм проверки? А что у него внутри, знаешь?  
  • Similar Content

    • By trijdyded
      Всем здравия!
      Появилась нужда в контроле сетевого напряжения - спалил сварочник. Починил, но решил в него всунуть реле защиты. Готовые дороговаты, подумал самому слепить. Нашел схему реле.
      С хозяином схемы списывался, но его уже год нет на сайте - ушел в политику.

      Решил в Протеусе смоделировать.  Заодно и азы поизучать (правда, мозги уже не те). Набросал схему. На ножку 3 подал напряжение с переменника от 5 вольт. Сетевое выпрямленное делится в схеме реле в 100 раз (R5, R7), т.е. на контроллер подается где-то в районе 2...3 вольта. Вместо реле на ножку 2 бросил светодиод D1. Модельку запускаю, моргает только светодиод D6, а D1 молчит. При любом положении переменника ничего не происходит.

      Протеус ошибок не дает, а куда копать не представляю.
      Еще не знаю что значат поля в свойствах контроллера "Program Configuration Word" (там значение 0x3FF4) и ниже "Advanced Properties:"

      Моделька и прошивка:
      AutoMAT_v1.hex
      pic12_ukraina.pdsprj
      Благодарю за помощь.
    • By Mayder
      Здравствуйте. Есть желание сделать пропорциональное радиоуправление для модели машинки на пике. Программировать пока не умею, но микры и программатор уже есть. Рассматривал статьи в интернетах, но путевого мало. Нашел хорошую статью на VRTP , все прочитал и запутался в количестве архивов прошивок. Еще нашел схему кодера на сайте ссылка , но здесь только кодер. По данным с других форумов вычитал, что там используется стандартный PPM сигнал (или стандарт!?), а это значит что декодер туда можно подсунуть любой.
      Проблема в том, что на первом форуме автор делал управление катером (без заднего хода, хотя вроде можно подключить реверсивный регулятор и все заработает как нужно, применен также стандартный PPM. И конструкция пульта смущает, не могу разобраться в подключении потенциометров), а на втором сайте автор делал для самолета, и там так же отсутствует задний ход значит, но если сигнал стандартный, то также можно подключить реверсивный регулятор и все будет хорошо.
      Если оба РУ сделаны под стандартный протокол, то можно совместить же кодер с сайта и декодер с форума VRTP? Кодер проще второй, а регулятор имеется простой с форума. И есть вообще еще люди, кто могут отозваться о работоспособности этих вариантов? Надеюсь на помощь разбирающихся
    • By Batai
      Здравствуйте, помогите пожалуйста разобраться с подключением радиопередатчика FS1000A к PIC16F628A и приемника XD-RF-5V к PIC12F675.
      Передатчик передает сообщение такого вида:
      Сначала передается сигнал начала сообщения - 10 мс, сразу за ним 0 бит и через каждые 20мс остальные биты.
      Приемник последовательно записывает сигналы и пишет готовый байт в GPIO.
      Все замечательно работает через провод и не реагирует при подключении приемника и передатчика.
      В чем может быть проблема?
      Не судите строго, все придумывал сам=)
    • By Alexstrok
      Всем здравствуйте! Когда-нибудь заметили, что Тахометр всегда встречаются на МК как PIC16F628a, PIC16F628, PIC12f629 и другие.
      А что будет, если поставим тахометр на PIC12F675, где меньше всего "многоножек"?
      С помощью просторы интернета собрал схему на PIC16F628a на протеусе. (Прикрепил здесь)
      Там на схеме генератор импульсов и счетчик, таким образом получаю количество оборотов в минуту, с делителем на 2 при 100 герце будет 3000 оборотов в минуту, а можно без делителя - то 6000.
      Пытался найти альтернативы, как создать тахометр на PIC12F675, не получается. Кто-нить из вас знает, как сделать на протеусе? Прошу поделиться, товарищи.
      Может поможет картинка, которая показывает, что при достижении оборотов, установленных кнопкой "SET" вспыхивает ярко красный светодиод после свет приглушается и остается таковым до уменьшения оборотов ниже установленного уровня. Все это дело сопровождается писком.
      Тахометр на PIC16F628a.rar

    • By Lev@
      Решил прошить PIC 12F629, прога протестирована в PIC emulator IDE, в Proteus - работает - 100%, но ПИК не шьется!.
      Программатор - Pony Prog, софт - IC prog 1.06 выдает ошибку еще до этапа заливки программы:
      Естественно я сразу же(через пару часов танцов с бубном) забил в "поиск" - вот этот програматор прошьет - паяйте, вот с этим софтом не будет проблем - качайте...
      Еще полтора часа на закачку и пайку програматора, а результат тотже!
      Мозг кипит - ЧТО делать???!!!

×
×
  • Create New...