Македонски форум за електроника
Дигитална електроника => Микроконтролери => Topic started by: Devil on 05.03.2011, Saturday, 16:50:24
-
Туторијали за програмирање во mikroBasic PRO for PIC
1. Проста програма за трепкање (вклучување и исклучување на LED)
http://elektronika-mk.net/index.php?topic=4289.new#new (http://elektronika-mk.net/index.php?topic=4289.new#new)
2. Употреба на Тастери
http://elektronika-mk.net/index.php?topic=4305.msg39493#msg39493 (http://elektronika-mk.net/index.php?topic=4305.msg39493#msg39493)
3. Употреба на 7 сегментни дисплеи
http://elektronika-mk.net/index.php?topic=4315.new#new (http://elektronika-mk.net/index.php?topic=4315.new#new)
4. Употреба на LCD дисплеј
http://elektronika-mk.net/index.php?topic=5990.new#new (http://elektronika-mk.net/index.php?topic=5990.new#new)
5. Туторијал за поврзување на пакетите од микроелектроника со пакетите на микрочип
http://elektronika-mk.net/index.php?topic=6246.msg54725;topicseen#new (http://elektronika-mk.net/index.php?topic=6246.msg54725;topicseen#new)
6.Туторијал за работа со ADC
http://elektronika-mk.net/index.php?topic=6381.msg55654#msg55654 (http://elektronika-mk.net/index.php?topic=6381.msg55654#msg55654)
7.Туторијал за работа со временски библиотеки
http://elektronika-mk.net/index.php?topic=8687.0 (http://elektronika-mk.net/index.php?topic=8687.0)
Сите туторијали се наоѓаат во под секцијата на Стручна литература -> Туторијали
Тема за дискусија поврзана со туторијалите
Ве молам не одете офф топик пошто ќе ги бришам мислењата, се што е поврзано со туторијалите е дозволено.
Околу видеата кој се во туторијалите, значи во некои видеа ќе се гледа сецкање при работа или пак спонтано забрзување, тоа е поради софтверот кој го користам за снимање и поради квалитетот на видеата кој сега за сега е мал (мала резолуција за снимање се користи)
Проверувајте го првото мислење редовно заради надополнувања !
-
' program LED
' moze da se upotrebi za bilo koj PIC 16F...
'pisuvana vo mikroBasic PRO for PIC
' 1 znaci ligicko 1 na izlezot a 0 znaci nema izlez ke vidite vo kodot
' ponadolu
main:
' Main program od tuka pa nadolu se pocnuva so podesuvanje na registrite
ANSEL = 0 ' so ANSEL i ANSEH se odbiraat site izlezi da se digitalni
ANSELH = 0
TRISB = 0 'PORTAB se progkasuva za izlezna
PORTB = 0 'se brise PORTB da nema izlezi
Delay_ms (500) 'pauza od pola seknda
START: 'pocetok na programata
PORTB = %10000001 'so "%" se definira deka se raboti za binaren broj
Delay_ms (80) ' znaci se uklucuvaat 1 i 8 izlez pauza od 80ms
PORTB = %01000010 'potoa se isklucuvaat i se uklucuvaat 2 i 7
Delay_ms (80) 'pa pak pauza i taka nataka istata procedura
'no razlicni izlezi ;-)
PORTB = %00100100
Delay_ms (80)
PORTB = %00011000
Delay_ms (80)
PORTB = %00100100
Delay_ms (80)
PORTB = %01000010
Delay_ms (80)
PORTB = %10000001
Delay_ms (80)
goto START ' odi na pocetok "START"
end. 'kraj na programata
-
gladiator што претставува твојот код? нема ни шема ни објаснување.
-
Неговиот код е сличен со мојот од 3-тото видео за лед дидои, кај што паралелно се уклучуваат и исклучуваат лед диодите, тој има испрограмирано бинарно знакчето % ни покажува дека кодот кој следи е во бинарен облик, 8-те битови се портовите 1 бит е порта RB0 а 8-от порта RB7
(само што тој го има напишано најверојатно за PIC16F887 )
кај што има 1 е на високо ниво портата, кај шо има 0 е на ниско ниво портата
-
само што неговиот код не работи, се со црвено ми кажува за грешки
-
еве извинете ставив и коментари а зошто не работи кај тебе DX-er незнам кај мене е се ок
и е за 16Ф887 ама мислам дака треба да работи на сите микроконтролери па ке ни каже девил
дали сум во право или не :D
-
а шема ? Вака џабе е >:(
-
нема да работи на сите контролери
полето
ANSEL = 0
ANSELH = 0
се наменети само за некој пинови на контролери, не сите ги имаат, затоа на пр. кај PIC16F628
ќе ви прави проблем, ама па на PIC16F877/887 нема проблем :)
шемата е едноставна сите дидои се поврзани на порта Б, 8 диоди ..
-
зошто овој код ТАСТЕР кај мене не работи на 16Ф887 цело време свети 8-та лед а кога ке го потисман тастерот не работи нисто нема никаква промена пак свети истата лед
-
провери pull up отпорниците,дали ти се горе или доле,дека ако забележиш од шемата Девил за тастерите користи PUll UP отпорници.Односно тие се поврзани преку отпорници на +5 волти.Исто така провери ги и диодите дали се на минус или плус,ако се на минус треба да се активираат со "1" а на "0" обратно.
-
затоа што конфигурацијата е за PIC16F628
треба да си го промениш за твојата потреба, јас наведив дека е за тој пик, а и поубаво е вака
ако сакаш да научиш ќе мора да го измениш
со самата измена ти ќе научиш како работи :)
намести некој тастер да ти биди на некоја порта на влез
пр на порта А некој пин е влез
порта б ти се излези и додади му го тоа
ANSEL = 0
ANSELH = 0
за да ги наместиш дигитални пиновите
-
да така и постапив креирав нов проект за 16Ф887 но пак не работи а не ми јавува никаква грешка ???
-
па значи софтверот е готов,успешно чим е програмиран и компајлиран тогаш е до хардверот.Провери тоа со пул ап отпорниците.Дека и јас сум имал проблеми не Easy PIC6 од брзање.
-
ок е сега но немие јасно што се случи едноставно само го рестартирав конпјутерот и ???
Споено мислење: 06.03.2011, Sunday, 15:29:17
devil дали можеш да ни преставиш програм со услови на тастери како би изгледал тој и како е најдобро да се условива ::)
-
Еве модификација на првата програма од Девил. Со оваа програма ке трепка само една ЛЕД. Пикот и шемата се исти, само ке ги отстраните другите ЛЕД што не требаат ;)
'Proekt Tutorijal za Makedonski Forum za Elektronika
'************ http://elektronika-mk.net
'*****************Devil Tutorijali****************
'Hardver razvoen sistem MFE_01, softver mikroBasic PRO for PIC v.4
'Simulacija ISIS7
'Procesor 16F628A na 4MHz
program led 'Program led e imeto na proektot (programata)
main: 'Glaven del na programata
TRISB = 0 'Postavi porta B kako izlez
PORTB = 0 'Pocetna sostojba (digitalna sostojba 1-visoko nivo, 0- nisko nivo) na porta B e 0
Delay_ms(500) 'Pauza od 500mS
'Od tuka nadolu ja pisuvame programata za trepkanje na LED diodite
PORTB.0 = 1 'Pinot RB0 e na visoko nivo
Delay_ms(500) 'Pauza od 100mS ovaa naredba nadolu se povtoruva poveke pati
Delay_ms(50) 'Pauza od 100mS ovaa naredba nadolu se povtoruva poveke pati
goto main 'Odi na pocetok, ova e beskonecna komanda, ovaa programa
' ke se izvrzuva beskonecno dolgo
end. 'Kraj na programata
И уште нешто, како вие програмирате, мисла дали рачно ги пишувате овие кодови или пишете нешто друго а после микро бејзикот ги генерира овие кодови ?
-
јас рачно пишувам, за другиве не знам можеби копираат од негде :)
-
ама во главно овие кодови или се пишуваат или се копираат од некаде. Прво мислев дека влегуваш во некаква програма и одбираш пик и си избираш кои ноги на пикот да ги користиш и која нога каква функција да има, и после во некакво мени избираш што функции сакаш да извршува пикот и после самата програма ги генерира овие кодови. Но сум бил грешка, не било толку едноставно. Ама ако се се учи па и ова :)
-
прво треба да знаеш што функција сакаш да има пикот, составуваш хардвер па после према тој хардвер го дизајнираш софтверот
може да правиш и блок диаграми каде што во квадратчиња ќе ти биде испишана функцијата
има и за тоа програма и се вика Flowcode for PIC mcu
-
прво треба да знаеш што функција сакаш да има пикот, составуваш хардвер па после према тој хардвер го дизајнираш софтверот
Како го составуваш тој хардвер?
може да правиш и блок диаграми каде што во квадратчиња ќе ти биде испишана функцијата
има и за тоа програма и се вика Flowcode for PIC mcu
Па нели вака е многу полесно одколку па пишеш кодови?
-
пробај пакажи ми дали е полесно :)
па така прво треба да знаеш аналогна електроника, затоа во туторијалите се почна со изучување на најпрости елементи па се до микрокнтролери, треба да ја знаеш кој елемент која функција ја има
после треба да знаеш типот на микроконтролер кој го користиш кои можности ги има
и според ними си составуваш твоја шема односно хардвер
-
прво треба да знаеш што функција сакаш да има пикот, составуваш хардвер па после према тој хардвер го дизајнираш софтверот
Како го составуваш тој хардвер?
Хардвер ти е електрониката.Значи микроконтролерот,ЛЦД екран,диоди,отпорници т.е. цел склоп се вика хардвер.Одличен е туторијалов Девил,само така. ;D ;D
-
а како поинаку да го наречам ?
јас знам дека тоа е хардвер ако е нешто друго исправи ме
-
не,не сакав да дополнам,односно да му објаснам да Дексер.
-
не,не сакав да дополнам,односно да му објаснам да Дексер.
е фала во ред е, сватив :) Јас прво под хардвер помислив само на микроконтролерот и си викам што има тука да составуваш ама не е само тоа, има и други попратни делови како што рековте. :)
-
секако рачно се пишува овој код а програмата тој код го прави во машински код разбирлив за микроконтролерот
-
ме интересира дали има нешто меѓу ниско и високо ниво ? мислам ЛЕД да свети ама послабо.
дали порта А е за минусот а порта Б е за плусот ?
Нешто оф топик, дали може да се користи само процесорот од микроконтролерот ? Мислам да се користи само како микропроцесор ? Се разбира би имал екстерни рам, ром, флеш и се останато
-
ме интересира дали има нешто меѓу ниско и високо ниво ? мислам ЛЕД да свети ама послабо.
Да може да се контролираат,тоа се вика PWM или PUlse widith modulation.Со оваа команда може да контролираш диоди,една диода,а преку транзистор или тријак мотор може да се контролира.Или пак некоја сијалица.
-
ме интересира дали има нешто меѓу ниско и високо ниво ? мислам ЛЕД да свети ама послабо.
дали порта А е за минусот а порта Б е за плусот ?
Нешто оф топик, дали може да се користи само процесорот од микроконтролерот ? Мислам да се користи само како микропроцесор ? Се разбира би имал екстерни рам, ром, флеш и се останато
Склос ти објасни за PWM- от
инаку портите се сите исти ( добро +- исти)
секоја порта се користи и за позитивни и за негативни „импулси“ (команди како сакате наречете ги ), зависно од тоа како во програмата се зададени
кај ним нема + -, имаш само високо ниво(1) и ниско ниво(0) и уште едно ниво кое е неопределено кога пинот е конфигуриран како влез
-
Еве уште една модификација на програмот на Devil
'Proekt Tutorijal za Makedonski Forum za Elektronika
'************ http://elektronika-mk.net
'*****************Modifikacija na Devil Tutorijal****************
'Hardver razvoen sistem MFE_01, softver mikroBasic PRO for PIC v.4
'Simulacija ISIS7
'Procesor 16F628A na 4MHz
program led 'Program led e imeto na proektot (programata)
main: 'Glaven del na programata
TRISB = 0 'Postavi porta B kako izlez
PORTB = 1 'Pocetna sostojba (digitalna sostojba 1-visoko nivo, 0- nisko nivo) na porta B e 0
Delay_ms(2) 'Pauza od 500mS
'Od tuka nadolu ja pisuvame programata za trepkanje na LED diodite
PORTB.0 = 1
Delay_ms(1)
PORTB.0 = 0
PORTB.1 = 1
Delay_ms(80)
PORTB.1 = 0
PORTB.2 = 1
Delay_ms(80)
PORTB.2 = 0
PORTB.3 = 1
Delay_ms(80)
PORTB.3 = 0
PORTB.4 = 1
Delay_ms(80)
PORTB.4 = 0
PORTB.5 = 1
Delay_ms(80)
PORTB.5 = 0
PORTB.6 = 1
Delay_ms(80)
PORTB.6 = 0
PORTB.7 = 1
Delay_ms(80)
PORTB.7 = 0
PORTB.6 = 1
Delay_ms(80)
PORTB.6 = 0
PORTB.5 = 1
Delay_ms(80)
PORTB.5 = 0
PORTB.4 = 1
Delay_ms(80)
PORTB.4 = 0
PORTB.3 = 1
Delay_ms(80)
PORTB.3 = 0
PORTB.2 = 1
Delay_ms(80)
PORTB.2 = 0
PORTB.1 = 1
Delay_ms(80)
PORTB.1 = 0
PORTB.0 = 1
Delay_ms(80)
goto main 'Odi na pocetok, ova e beskonecna komanda, ovaa programa
' ke se izvrzuva beskonecno dolgo
end. 'Kraj na programata
-
кога ќе го едитираш програмот, менувај го и коментарот од самиот програм за да не ти е чудно после што како од каде доаѓа
-
имаш право. Сега пробав со порта А, ама ништо, не сака да светне додатната ЛЕД што ја ставив на PORTA.0 = 1
-
во оваа програмата кој ја наведе ти нема нигде зададено дека и порта А ќе се користи
треба со командите TRISA = 0 да наместиш прво порта А да биде излез
после тоа во кодот треба да пишиш тоа PORTA.0 =1
-
во оваа програмата кој ја наведе ти нема нигде зададено дека и порта А ќе се користи
треба со командите TRISA = 0 да наместиш прво порта А да биде излез
после тоа во кодот треба да пишиш тоа PORTA.0 =1
а дали може под TRISB да напишам и TRISA ? Бидејки ке ми требаат и двете порти
-
може не е проблем тоа
ако имаше пик со повеќе порти пр. 16Ф887 тој има PORTA PORTB PORTC PORTD и PORTE :)
5 порти кој мора да ги поставиш доколку сакаш да ги користиш
-
Успеа, фала друже. Сакам да направам круг од повеке ЛЕД и цело време да се "врти" (ефект на движење)
-
затоа што тие порти ти се поставени за осцилатор
треба да ја замениш конфигурацијата на осцилатор и да наместиш да се користи внатрешниот
а тие пинови да се влезно излезни
-
Да, го вклучив надворешниот и проработеа :) Него сакав да ја активирам и PORTA5 ама прегоре колото :( сега не сака да проработи и без PORTA5. Ке треба се наново да пишам
-
ама таа порта е само влез, не може да ја користиш за излез :)
-
ако правам програма за 12F675 на местото на TRISB или TRISA што треба да напишам ? На местото на PORTA или PORTB што да пишам ?
-
TRISIO ти е пошто има само една порта
а за портата да ја назначиш пишуваш GPIO.x кај местото на х гледаш која порта е или доколку сакаш цела порта да ја активираш тогаш само GPIO
-
а и вамо GP5 е таа влезна порта која неможам да ја искоритам за излез кон ЛЕД?
-
незнам тоа, мислам дека сите може да се наместат како излез тука
-
Направив да трепка една ЛЕД ама не сака да работи, не знам што му е
'Proekt Tutorijal za Makedonski Forum za Elektronika
'************ http://elektronika-mk.net
'*****************Trepkac so 12F675****************
'Hardver razvoen sistem MFE_01, softver mikroBasic PRO for PIC v.4
'Simulacija ISIS7
'Procesor 12F675 na 4MHz
program led 'Program led e imeto na proektot (programata)
main: 'Glaven del na programata
TRISIO = 0 'Postavi porta O kako izlez
GPIO = 0 'Pocetna sostojba (digitalna sostojba 1-visoko nivo, 0- nisko nivo) na porta O e 0
Delay_ms(500) 'Pauza od 500mS
'Od tuka nadolu ja pisuvame programata za trepkanje na LED diodata
GPIO.0 = 1 'Pinot GP0 e na visoko nivo
Delay_ms(100) 'Pauza od 100mS ovaa naredba nadolu se povtoruva poveke pati
GPIO.0 = 0 'Pinot GP0 e na nisko nivo
goto main 'Odi na pocetok, ova e beskonecna komanda, ovaa programa
' ke se izvrzuva beskonecno dolgo
end. 'Kraj na programata
-
додај ги овие над main: делот
ANSEL = 0
CMCON = 7
-
Мислиш вака ? Ама ми јавува грешки :(
Proekt Tutorijal za Makedonski Forum za Elektronika
'************ http://elektronika-mk.net (http://elektronika-mk.net)
'*****************Trepkac so 12F675****************
'Hardver razvoen sistem MFE_01, softver mikroBasic PRO for PIC v.4
'Simulacija ISIS7
'Procesor 12F675 na 4MHz
program led 'Program led e imeto na proektot (programata)
ANSEL = 0
CMCON = 7
main: 'Glaven del na programata
TRISIO = 0 'Postavi porta O kako izlez
GPIO = 0 'Pocetna sostojba (digitalna sostojba 1-visoko nivo, 0- nisko nivo) na porta O e 0
Delay_ms(500) 'Pauza od 500mS
'Od tuka nadolu ja pisuvame programata za trepkanje na LED diodata
GPIO.0 = 1 'Pinot GP0 e na visoko nivo
Delay_ms(100) 'Pauza od 100mS ovaa naredba nadolu se povtoruva poveke pati
GPIO.0 = 0 'Pinot GP0 e na nisko nivo
goto main 'Odi na pocetok, ova e beskonecna komanda, ovaa programa
' ke se izvrzuva beskonecno dolgo
end. 'Kraj na programata
-
стави ги во main делот (после него)
и најгоре ти фали тоа кодот Program led ( важно да има program и некое име после тоа, ама да не почнува со број)
-
Не иде ич. ако можеш види ги и симулаторот и програмот, кај мене не сака никако
-
мене и без ANSEL = 0 и CMCON = 7 ми го компајлира.
-
мене и без ANSEL = 0 и CMCON = 7 ми го компајлира.
да, за тоа нема проблем, но стави го на симулаторот :)
-
на развојниот систем го проверив,си работи се е ОК ;D
-
aaaaaaa па што му е на симулаторот тогаш :( изгледа ке треба да барам подобар. Ама практично си е практично
-
на развојниот систем го проверив,си работи се е ОК ;D
хмм сега ја направив шемата и пробав и не сака
-
Дечки ај кажете некои команди за пали-гаси за лед диода,некои основи да научам ;D.Имам за играње еден пик 887,па кажете нешто за старт :)
Споено мислење: 25.04.2011, Monday, 23:49:33
Eве што научив сега ;D.Пали гаси со две лед диоди и пик16ф887.
program led
main:
TRISB = 0
PORTB = 0
TRISD = 0
PORTD = 0
Delay_ms(100)
PORTB.0 = 1
Delay_ms(30)
PORTB.1 = 1
PORTD.0 = 1
Delay_ms(30)
PORTD.1 = 1
goto main
end.
Од пиновите 19 и 33 преку отпорници од 220оми врзете две лед диоди према маса и ќе трепкаат ;D
-
јас сум малку во криза со времето, имам некои други работи, да се ослободам малку и пак ќе почнам д апишувам тоа туторијалите ...
-
Еве само дел од она што следи :)
инаку од сега па натаму ќе го сменам малку начинот на кој ги пишувам туторијалите оти неколку души ми се пожалија не разбирале баш :)
sub procedure tonC()
Sound_Play(97, 492)
end sub
sub procedure tonD()
Sound_Play(109, 492)
end sub............
Sound_Init(PORTD, 2)
while TRUE ' beskonecna proverka
if (Button(PORTB,0,1,1)) then 'Ako se pritisni RB0 ton C
TonC()
while (RB0_bit <> 0)
nop 'Vreme za kopceto da se stabilizira
wend
end if.........
значи за користење на под процедури и генерирање на звук :)
-
A да не знаете некој конвертор(ако постои)кој конвертира од хекс во ц?
-
непостое таква работа, бар јас не знам за тоа
еве ја новата шема на која ќе работиме на нарадните туторијали :)
се работи за мини синтисајзер со 8 ноти, до, ре, ми, фа, сол, ла, си, до
фреквенцијата на нотите е сл.: до- 97.572Hz, ре- 109.68Hz, ми- 121.65Hz, фа-134.61Hz, сол- 146.357Хз, ла-73.179Hz, си - 85.375Hz, до- 97.572Hz
времетраење на една нота е 0.492sec.
овие податоци ги најдов на интернет незнам колку се точни ама таму имаше една скала со еден тон ноти и од ним ги извадов овие само :)
-
Зошто си ставил 100n кондензатори кај кристалот наместо 22p?
-
Презакачено со исправни и точни вредности на компонентите, сум заборавил да им ги пишам вредностите :)
-
Девил имаш готов хекс за проектов?
-
имам нешто ама не е цело пошто како ќе ги пишувам туторијалите така ќе го надградувам
ЕДИТ
Во шемата има грешка кај поврзувањето на тастерите !!!
ЕДИТ2
во атачмент ја има новата исправна шема
со дел од кодот (кој не е баш исправен) мелодијата која е снимена не е таа таа што треба да биди
-
Додадов ново туторијалче за LCD дисплеи, ова беше за на натпревар ама не стигнав тогаш да го довршам :)
еве сега го испробав работи добро е на симулација
-
Деновиве кога ќе го добијам програматорот и дебагерот од микроелектроника ќе продолжам со туторијалите, со тоа што ќе има и како тие работаат и практично, како се дебагира и сл.
------------------------------------------------------------------------------------------------------------------------------
напишав туторијал како да користите дебагери и програматори од микрочип (PicKit2 ICD2) со пакетите компајлери од микроелектроника, како се подесуваат програмите (MPLAB, mikroC, µBasic, µPascal) за да можите да дебагирате и да гледате чекор по чекор како оди сето тоа што го правите :)
линкот е на прва страна од оваа тема прво мислење под број 5
-
здраво дали некој може да напише код за бројач со притискање на тастер но броевите да се покажуваат на LCD дисплај
-
како мислиш бројач ?
ако се притисне 1 тастерот на дисплеј да пишува 1 и така понатаму 2 пати 2, 3 пати 3...
или имаш некоја друга замисла ?
со кој микроконтролер сакаш да биди ?
-
дада така ако притиснаш еднаш да напише 1 и така натака со PIC 16F887
-
Вчера работевме на форумот до доцна не успеав да го досредам, пишував нешто ноќта ама некако не сака да работи, принципот е тоа треба да провериш само поставувањето на променливите и како да се склопат променливите со копчето друго работи, од прво работеш така да ако притиснеш на копчето брое до бесконечна вредност некоја и се ресетира, сега ако притиснеш на копчето не брое види тука е проблемот, денес не стигнав да го поправам пошто друго работев..
во атачмент ти е цел проект разгледај го
-
Devil фала многу многу ми се најде одличен пример и чекаме да продолзиш со турторијалот поздрав
-
ќе продолжам, наредна ми е се примерите за ADC :)
-
ок чекаме секое мислење и секој пример е добродојден ;D
-
Додаден туторијал за работа со A/D конверзија, се мери процентуална вредност на потецниометарот, кога е крајна положба према маса поставен прикажува 0 кога е крајна положба према Vcc прикажува 1023-1024, ТУКА само заборавив да додадам во програмата да става запирка па така да вредноста која ја прикажува е 100%= 102.3 (бинарна вредност но се совпаѓа со процентуалната на потенциометарот :)) така да последната десна цифра треба да се оддели само со запирка од останатите пр. за 50%= 503= 50.3
-
Дечки кој компајлер го користите за mikroBasic PRO дајте некој линк од кај да го симнам?
-
имаш од микроелектроника од нивната страна, демото им е ограничено на неколку килобајти код, кој е доволен за основни потреби, ако сакаш нешто поголемо да правиш треба лиценца или крак да најдиш за тоа ...
-
Ај уште нешто да ве прашам. Го симнав микро бејзик про и напишав една програма, е сега како да ја вметнам во пикот??
Му правам „build“, ми вика успешно и потоа можам да му направам save на асемблерскиот код.
И понатаму не знам..
Тој код го ставам во MPLAB IDE ама не сака да ми направи хекс ми наоѓа многу грешки..
Сега незнам што е проблемот. Дали јас грешам некаде или ???
Споено мислење: [time]22 Ноември 2011, 21:49:13[/time]
А дали кај вас во мирко бејзикот можат да се менуваат овие сетинзи??
(http://i43.tinypic.com/2pyrsqo.jpg)
Да не е нешто проблемот што го кракував програмот???
http://tinypic.com/view.php?pic=2pyrsqo&s=5
-
Devil фала многу се израдував но зошто неможам да ги читам коментарите од кодов ? ::)
-
како хероглифи ти ги вади ?
пошто пишувани се со кирилична поддршка мене без проблем ми ги отвора :)
ај ќе видам што можам да направам за да го средам проблемот
го поставив во пдф кодот во темата, мислам дека тој нема да прави проблеми со јазикот во коментарите :)
-
Има некој идеа околу кодов ?
ми вади проблем со знакчето < , а ми треба да споредам две ситуаци, ако едната постигне вредност помала од другата да се зголеми за да се изврши друга операција :D
(разгледај го кодот ќе ти стане јасно)
dim redica as char[10]
dim px as char
dim jx as char
dim sx as char
dim ix as char
dim still as char
dim n as byte
'***Движење***
sub structure skrol(dim a as char, dim b as char, dim c as char, dim d as char, dim e as char)
dim count as short
count=6
while (count>0)
redica[0]= not a
a=b b=c c=d d=e e=255
reset_shift()
for (sx=0 to sx<still sx++) <------------- Овде појаву проблем и сегде кај што е < знакот
for (ix=0 to ix<0 ix++)
px=1
for (jx=0 to jx<9 jx++)
PORTB= not (array[ix] and (px)
delay_ms(.1)
px<<=1
end for
clock()
end for
end for
for (ix=9 to ix>0 ix--)
array[ix]=array[ix-1]
end for
count--
wend
end sub
-
Кодот е многу лошо преведен од C. Можеби ако го поставиш оригиналниот код, некој ќе може да го преведе подобро.
-
еве го оригиналниот :D
char array[10],p,j,s,i,still;
void clock(){ RB6=1;RB6=0;}
void reset(){ RB7=1;RB7=0;}
void scroll(char a,char b,char c,char d,char e) //display function //
{
short int count=6;
while(count>0)
{
array[0]=~a;
a=b;b=c;c=d;d=e;e=255;
reset();
for(s=0;s<still;s++)
{
for(i=0;i<10;i++)
{
p=1;
for(j=0;j<9;j++)
{
PORTD=~(array[i]&(p));__delay_ms(.1);p<<=1;
}
clock();
}
}
for(i=9;i>0;i--)
{
array[i]=array[i-1];
}
count--;
}
}
-
Еве пробав да преведам иако не го познавам баш најдобро C јазикот. Вака како што е, кодот се компајлира , но не знам дали ќе работи. Можеби има грешки.
'char array[10],p,j,s,i,still;
dim MyArray as char[10]
dim p as char
dim j as char
dim s as char
dim i as char
dim still as char
'void clock(){ RB6=1;RB6=0;}
sub procedure clock
PORTB.6 = 1
PORTB.6 = 0
end sub
'void reset(){ RB7=1;RB7=0;}
sub procedure MyReset
PORTB.7 = 1
PORTB.7 = 0
end sub
'void scroll(char a,char b,char c,char d,char e) '//display function //
sub procedure scroll(dim a, b, c, d, e as char)
'{
'short int count=6;
dim count as integer
count = 6
while(count > 0)
'{
'array[0]=~a;
MyArray[0] = Not(a)
'a=b;b=c;c=d;d=e;e=255;
a = 255
b = 255
c = 255
d = 255
e = 255
'reset();
MyReset
'for(s=0;s<still;s++)
while s < still
'{
s = s + 1
'for)i=0;i<10;i++)
for i = 0 to 9
'{
p = 1
'for(j=0;j<9;j++)
for j = 0 to 8
'{
'PORTD=~(array[i]&(p));__delay_ms(.1);p<<=1;
PORTA = Not(MyArray[i] and p) ' <-- go kompajlirav za 16F628A kojsto nema PORTD
Delay_us(100)
p = p << 1
'}
next j
'clock();
clock
'}
next i
'}
wend
'for(i=9;i>0;i--)
for i = 9 to 0 step -1
'{
'array[i]=array[i-1];
MyArray[i] = MyArray[i - 1]
'}
next i
'count--;
count = count -1
'}
wend
'}
end sub
-
сега ќе го пробам, ако е ок, ќе има видео што поточно прави, ако не е ОК, ќе барам кај нечини да го едитирам :D
-
Секаде каде што има дефинирано "char" во кодот, пробај да ствиш "byte". Мислам дека повеќе ќе одговара.
-
не сака да работи тоа што треба, ми дава некој чудни скролања само :D
треба да си ја преиспитам малку конфигурацијата на склопов :D
-
Може линк до проектот, да видиме за што се работи ;D
-
нема линк, составувам од повеќе делови мое
еве ако те интересира како изгледа мојот код, се составив уште за движењето, тоа го позајмувам од повеќе делови ама некако не може да се вклопи нај нај :D
морав во html формат да ја ставам, оти ми се губат коментарите инаку :D, не дека се важни нешто ама по средена изгледа вака :D
-
Кој PIC го користиш и како го тестираш кодот, дали имаш хардвер или во симулатор? Не е лошо да поствиш и шема од уредот или објаснување што има поврзано на PIC-от. Претпоставувам дека има некое коло shift register и LED диоди.
-
користам 16F887 со шифт регистар и лед матричен дисплеј во атачмент е од proteus симулацијата, само малку ми е измешана не ми е баш нај нај исцртана оти незнам точно како работи дисплејот, односно не знам која нога шо му е, знам како работи, ама некако чудно ми се поврзани диодиве :D
-
Пробав да направам нешто, но не ми успеа :'( Мислам дека симулаторот не може добро да ја прикаже матрицата. Подобро би било да се експериментира со вистински хардвер.
-
и јас на тоа се мислев, ќе видам ова кинезиве што ќе речат, барав некој матрици па да видиме што како, друго се имам :D