Форум за любителите на Стара електроника
Персонални компютри, игрови приставки и друга стара електроника за забавление => Ремонт, схеми, документация, литература => Темата е започната от: Bengata в 29 Юни, 2015, 20:17:39
-
Понеже нищо не разбирам от програмиране търся колега които има свободно време да драсне една проста програма .
Програмата е следната
Микро контролера трябва да имам RS 232
Като от TX порта трябва да се повтаря през 400 ms 01011011
Когато на RX порта се получи 01101101 трябва да спре предаването от ТХ порта и да се предаде числото получено от RX Порта 01101101 два пати през 400 ms след което се възстановява предаването на 01011011 .
Да има бутон .
При натискането на бутона да спира предаването на 01011011 и да се предаде 01100110 40000 ms след което пак се възстановява предаването на 01011011 .Но ако през това време се получи 0111111 на RX порта да спре предаването от TX порта докато не получи отново 0111111 .
След това се връща пак на 01011011
Да може да се прави корекция на данните който получава и изпраща .
Това е програмата
Спрял съм се на PIC18F452 защото има много крака , имам програматор и развойна платка за него кварца ми е 10 MHZ .И налични 10 броя от него
Ако се намери колега които може да ми помогне с това ще му бъда задължен .
числата които давам са примерни за момента . Реално е 128 бита число .
П.П.
Може да е и програма под WIN и да работи през COM port . Но да може да се прави корекция на данните който получава и изпраща .
-
Това което описваш се прави лесно на асемблер, не виждам защо ще ти е C или още повече C+ (тук или аз нещо не вдявам или си изпуснал още един плюс) и освен това всеки PIC16 ще свърши работа, защо ти е PIC18? Ще е хубаво да разкриеш за какво става дума - т.е. какво е приложението на това устройство с какво си комуникира и така... и също да кажеш какво значи да може да се коригират данните, т.е. да можеш ти да задаваш новите данни които искаш да се изпращат динамично на самата система ли, това вече означава че ще ти трябва не само един буон а няколко и също така дисплей. Ако ли е друго то ясно че ще мооже да се коригират във сорс кода правиш промените, асемблираш и програмираш... не знам уточни повече, но за съжаление най-вероятно няма да мога лично аз да ти помогна защото нямам много свободно време.
-
Да се коригират във сорс кода . Дисплей не ми трябва и не е нужен . Данните излизат през RF модем които ще ги модулира в FSK . Може и на Асемблер . Не разбирам нищо от програмиране . Процесора този защото имам изобилие също така имам 18F252 и 16F84A .
-
Здравей,
Свали си развойната среда на Mikroelektronika
http://www.mikroe.com/
Там има примери на серийна комуникация на различни програмни езици.
Трябжа да смениш само stringa който изшращаш.
Гледам че изпращаш асинхронно така че бързината не е от значение и не ти трябва работа в реално време. на асемблер да но ако си програмираш PIC всеки ден.
Може и на Basic да го напишеш.
Предполагам че имаш Basic stamp програматор. Ще работи със софтуера на Микроелектроника.
Тази фирма е сръбска и работят от доста време рекламират се в списание Elektor.
Ние тук едни смотани програматори продаваме за 5 лева :D
Хайде стига с нихилизам
За съжеление имам много работа в службата и точно сега не мога да отделя време.
Сигурен съм че има доста хора където могат да ти драснат кода
define variable string (101000) кавото и да е
define serial pin
initialize serial
delay (400); ----> каква точност очакваш на импулса, имай предвид че ще има jitter тоест ще плава може би 3-5 ms. Допустимо ли е това за твоето приложение ?
loop
send string
Поздрави
Венци
-
допустимо е до 25 ms
-
Теоритично изпълнимо на 18F252 подкаран на 40МХц. Идеята за асемблера за мен е абсурдна. За уж лесната като цяло задачка ще трябва да се изпишат 2 кофи тайминг лупове на ASM. По-добре С или най-добре JALv2. Микроконтролерите нямат RS232, но може да им се сложи интерфейсен чип. Проблемът е обаче, че те имат само TX/RX пинове от вътрешния UART и нямат всичките типични за 232 пинове, като RTS, DTR и т.н. и ако модема ги иска (смисъл не може да работи в прозрачен режим, каквото влезнало при теб, излезнало от другата страна, или асинхронно) ще трябва да се дописва код за тях, а там има фини тайминги по 232 спецификацията и това ще усложни нещата. Аз пиша на JALv2 и преди време се опитах да накарам един 18F4550 да си говори с един GPRS модем на 19200 през MAX232 чип. Е, опитах се. Колкото и да си играх да намествам комуникациите, все нещо не ставаше. Така че първата задачка е да се провери дали модема иска handshake сигналите от 232 порта. Ако не - супер! Програмката като цяло не би трябвало да отнеме повече от ден-два с дебъгването (при наличен чифт модеми и насрещно у-во за проби, разбира се). И пак казвам, въпреки простотата на изискванията комуникациите си имат скрити спънки, особенно тези по 232.
-
От чипа се ползват само RX и TX друго не е нужно . Модем нe точно по скоро псевдо модем . Изпълнен с TL071 или подобен . Наистина е просто като устройство .
-
Като се ползват само RX и TX как се организира свръзката? Това си е пълен дуплекс, 2 радиоканала ли има? Повечко информация за организацията на линка може да помогне да дадем правилните съвети, ако не е тайна разбира се. Питам с точно тази цел, нямам възможност да поема задачката като поръчка в момента, но бих помогнал с опит и съвет, ако е нужно.
-
Да пълен дуплекс е , два радио канала през 45 MHz . Точните честоти не ми се дават в момента защото не знам точно къде ще го оставя да работи . Протокола по които работят устройствата е разбит до ниво на елементарна регистрация . Пробвано е работи но не е автоматизирано . Начина за автоматизация съм го описал по-горе .
-
От прочетеното до тук, моето мнение е, че пик с 8 пина е напълно достатъчен за тази задачка. Например pic12F1822. Да ползваш PIC18F452 за това е като да убиеш муха с оръдие :-)
Това, което искаш да може да се променя, може да се запише във вътрешния еепром на пика и да се променя само той (еепрома).
-
О да, дебел е, но нали казва, че имал бройки и за това предложих.
-
Така повдигам темата .
Пак трябва някой да ми помогне .
Нещата са вече подчти на 80% готови като се промени малко задението .
Помоща се заключава пренаписването на един код .
Ще го закача да го видите .
От цели код ми трябва да прави следното .
При подаване на информация от ком порта чипа изработва AFSK модулация , която е 1200 за 1 и 2200 за 0 . Така е написано в кода . На мен ми трябва тази AFSK модулация да е 1200 за 1 и 1800 за 0 . В кода има още
; 1) Command Interpreter
; 2) Packet Receive
; 3) Beacon Generator
; 4) Monitor
; 5) Software Timer
; 6) Digipeat
; 7) Converse
; 8) GPS
На мен ми трябва само AFSK модулация да е 1200 за 1 и 1800 за 0 . Другото не ми е нужно .
Преработката се налага защото не мога да намеря модем който да работи по описания по горе начин .
Понеже всички модеми който се продават работят 1200 khz за 1 и 2200 khz за 0 не ми вършат работа и трябва да търся друг начин . С продължително търсене попаднах на един проект със въпросния Pic16f88 , в който чрез вградения компаратор изработват въпросната модулация , която пак е 1200 khz за 1 и 2200 khz за 0 .
Така на въпроса . Можели някой които разбира от програмиране да преправи кода за да работи на 1200 khz за 1 и 1800 khz за 0 .
Кода ще го закача за да го разгледате .
Малко да разкажа
В програмата има вграден протокол АХ25 , протокол за GPS , писане и четен от паметта , сравняване на входящи данни , неща които на мен не са ми нужни .
От програмата трябва да остане само . При подаване на данни от ком порта да се изработи AFSK модулация с дължина 166 байта или 21 бита с време за предаване 139 мили секунди и обратното при входяща информация от радио канала да се обърне в цифрова вид към ком порта .
В момента е с време от 200 мили секунди но е свързан с протокола АХ25 .
Ако някой може да ми помогне ще черпя .
-
Опита ли във форума за Микроконтролери да попиташ ? Мисля че точно тази темата там ще има повече успех .
http://mcu-bg.com/mcu_site/index.php
-
По пък там като се засилят да му напишат програмата ... стой та гледай ;) Отделно, че има доста тамошни потребители, дето са редовни и тук.
Проблема на Bengata е, че не умее да си напише сам програмата, пък да му се помогне само за донастройките, а хората дето имат възможност да напишат програмата, предполагам си имат достатъчно своя работа, за да хвърлят напразно 3-4 дни в писане.
-
Виж тук,и софта го има.
http://dangerousprototypes.com/2011/01/30/aprs-homebrew-digital-radio-interface/
-
Оуу, сега погледнах кода - няма как да стане, поне не по разумен начин! Аз си мислех, че има програма на С, която трябва да се модифицира, а то има само асемблерен файл. Няма кой да ти преработва асемблер, дори и желание да има, не съм сигурен че са останали хора, които да могат да погледнат толкова дълъг асемблерен файл и да видят програма зад него. По-добре си потърси друг вариант, както е предложил 2XL.
Или защо не се свържеш с Bob Ball WB8WGA? Повечето колеги любители са отзивчиви, може да ти прати сорса на С и/или да помогне за модификация. Надали ще му е голям проблем.
:drinks: