MCS ve MCSP

Başlatan kudretuzuner, 06 Şubat 2012, 20:27:05

kudretuzuner

Merhaba
Arkadaşlar "Mecanique" dosyasında MCS ve MCSP var plus ücretli onu biliyorum ama ben MCS kullanmak istiyorum ama sadece 16F628 var diğer PIC'ler ise Plus formunda.Plus formundaki PIC çeşitlerini MCS'ya nasıl ilave edebilirim.Teşekkürler.

ete

İlave yapmayın.

Aşağıdaki adresten MCS son sürümünü yükleyin.

http://www.mecanique.co.uk/software/mcsinstall.exe

Ete

kudretuzuner

Merhaba
Mucit23 link vermişti aynısı galiba indirmiştim ama tekrar sizin linkten indirdim.Fakat yazdığım gibi sadece 16F628 görünüyor diğer PIC modelleri yok.16F877 veya 18F4550 için program yazamaya imkan yok gibi görünüyor.Teşekkürler.

F®T

C /:   PBP247  klasörünü yapıştırıyoruz. daha sonra mcs de  taratıyoruz.inc dosyasını buluyor.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

kudretuzuner

Merhaba
Tamamdır.INC dosyasını hallettim.Şimdi diğer PIC'leri de görüyorum.Yüklediğim zorro_3 adlı bir dosyayı compile ettim fakat "unable to locate zorro_3.asm"mesajı aldım.C:\ ye "MCS" adlı bir klasör oluşturdum.Bu .bas dosyasını da buradan çağırdım ama henüz daha compile edemedim.İşin en zor tarafları da bu maalesef,konuya,insan yeni başlayınca diğer arkadaşlara çok basit gelebilecek sorularla da karşılaşabiliyorlar.Tekrar teşekkür ederim.

F®T

#5
use mpasm çentiğini kaldırıp tekrar denermisiniz.

"C:\ ye "MCS" adlı bir klasör oluşturdum." bence bu ismide değiştirin.mesela MCCS olsun.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

kudretuzuner

Merhaba
Yok beceremedim aynı hatayı veriyor.Sizden ricam hex dosyası haline getirir misiniz? bir arkadaşa yardım için programda düzeltmeler yapmıştım isiste deneyeceğim.Teşekkürler.

F®T

kudret bey baya bir yazılım yanlışlıkları var .

'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [set under view...options]                        *
'*  Notice  : Copyright (c) 2012 [set under view...options]     *
'*          : All Rights Reserved                               *
'*  Date    : 05.02.2012                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
DEFINE LCD_DREG PORTC
DEFINE LCD_DBIT 0
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 0
DEFINE LCD_RWREG PORTB
DEFINE LCD_RWBIT 1
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 2
DEFINE LCD_BITS 8
DEFINE LCD_LINES 2
TRISA=%11111111
TRISB=%00000000
TRISC=%00000000
TRISD=%00000000
TRISE=%00000000
PORTA=%00000000
PORTB=%00000000
PORTC=%00000000
PORTD=%00000000
PORTE=%00000000
PORTB=PORTD
LCDOUT $FE,1
PAUSE 500
LCDOUT "STEP MOTOR KONT."
PAUSE 500
LCDOUT $FE, $C0
LCDOUT "SEYIT ALI YIGIT"
PAUSE 500
LCDOUT $FE,1
LCDOUT "MOTOR KONUMU:"
LCDOUT $FE, $C0
LCDOUT "DURDU"
PORTD.3=1


TEST0
IF PORTA.0=1 THEN GOTO TEST0
ELSE
SAG1
PORTB=%00110000
PAUSE 9000
PORTB=%01100000
PAUSE 9000
PORTB=%11000000
PAUSE 9000
PORTB=%10010000
PAUSE 9000
END IF

GOTO TEST0

ELSE GOTO TEST0
TEST1
IF PORTA.1=0 THEN GOTO SAG2


TEST2
IF PORTA.2=0 THEN GOTO SOL1
ELSE GOTO TEST3

TEST3
IF PORTA.3=0 THEN GOTO SOL2

IF PORTA.4=0 THEN GOTO DURDU
END IF


GOTO TEST

SAG1:


IF PORTA.4=0 THEN GOTO DURDU

GOTO TEST0


SOL1:
PORTB=%11000000
PAUSE 200
PORTB=%01100000
PAUSE 200
PORTB=%00110000
PAUSE 200
PORTB=%10010000
PAUSE 200
IF PORTA.4=0 THEN GOTO DURDU

GOTO SOL1

SOL2:
PORTB=%11000000
PAUSE 2000
PORTB=%01100000
PAUSE 2000
PORTB=%00110000
PAUSE 2000
PORTB=%10010000
PAUSE 2000
IF PORTA.4=0 THEN GOTO DURDU

GOTO SOL2

GOTO SAG1

SAG2:

PORTB=%00110000
PAUSE 2000
PORTB=%01100000
PAUSE 2000
PORTB=%11000000
PAUSE 2000
PORTB=%10010000
PAUSE 2000
IF PORTA.4=0 THEN GOTO DURDU

GOTO SAG2

DURDU:

LCDOUT $FE,1
PAUSE 500
LCDOUT "STEP MOTOR KONT."
PAUSE 500
LCDOUT $FE, $C0
LCDOUT "SEYIT ALI YIGIT"
PAUSE 500
LCDOUT $FE,1
LCDOUT "MOTOR KONUMU:"
LCDOUT $FE, $C0
LCDOUT "DURDU"
PORTD.3=1
GOTO TEST
END




"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

kudretuzuner

Merhaba
Evet haklısınız.Zaten o arkadaş da çok yakındı ben de pic basic bilmediğim halde biraz bakayım dedim.Sadece PORTA,0 butonunu kontrol ederek motora basic ile bir tur attırsam yazılımı anlayacağım.asm ile yazayım dedim istemiyor.Neyse zamanınızı da almayayım.Tekrar teşekkür ederim.Ama derslere fırsat buldukça bakacağım oldukça enteresan geliyor.

F®T

kudret abi ete hocanın step motor ile ilgili bir çalışması var onu incele istersen belki faydası olur.

"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

BAHAR

Merhaba, ben bpp2.50 kullanıyorum fakat birde, pbp2.50'nin "setup" şeklinde olanı var. Bu nasıl kullanılıyor bilen var mı?

Mucit23

stup dosyasını kullanarak bilgisayara yüklüyorsun PBP yi. Sonra MCS ya PBP nin yerini gösteriyorsun.
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

BAHAR

Alıntı yapılan: Mucit23 - 07 Şubat 2012, 00:21:10
stup dosyasını kullanarak bilgisayara yüklüyorsun PBP yi. Sonra MCS ya PBP nin yerini gösteriyorsun.

Teşekkürler, pic çeşitleri açısından arasında fark var mı yoksa ikisi de aynı mı?

KAZIMUGUR

Kudret abi , bir kaç basit kural hatası var.
Bir etiket tanımlanınca sonrasında  " : " olması gerekiyor.
   ---Bazılarında var bazılarında yok.

İf kullanırken else de kullanılacaksa then komutundan sonra aşağı satıra geçiliyor.

ENDIF bitişik yazılıyor , END IF  şeklinde değil.

Biraz düzelttim.
Mantık hataları hariç.
Tanımlanmayan etiket kullanılmış mesela TEST .
Hata veren satırların öünüde  " ; " koydum.

İlk başlangıçta böyle kurallar zorluyor ama alışınca gerisi kolay geliyor.


DEFINE LCD_DREG PORTC 
DEFINE LCD_DBIT 0
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 0
DEFINE LCD_RWREG PORTB
DEFINE LCD_RWBIT 1
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 2
DEFINE LCD_BITS 8
DEFINE LCD_LINES 2
TRISA=%11111111
TRISB=%00000000
TRISC=%00000000
TRISD=%00000000
TRISE=%00000000
PORTA=%00000000
PORTB=%00000000
PORTC=%00000000
PORTD=%00000000
PORTE=%00000000
PORTB=PORTD
LCDOUT $FE,1
PAUSE 500
LCDOUT "STEP MOTOR KONT."
PAUSE 500
LCDOUT $FE, $C0
LCDOUT "SEYIT ALI YIGIT"
PAUSE 500
LCDOUT $FE,1
LCDOUT "MOTOR KONUMU:"
LCDOUT $FE, $C0
LCDOUT "DURDU"
PORTD.3=1


TEST0 :
IF PORTA.0=1 THEN
GOTO TEST0
ELSE
SAG1
PORTB=%00110000
PAUSE 9000
PORTB=%01100000
PAUSE 9000
PORTB=%11000000
PAUSE 9000
PORTB=%10010000
PAUSE 9000
ENDIF

GOTO TEST0

;ELSE GOTO TEST0
TEST1:
IF PORTA.1=0 THEN GOTO SAG2


TEST2:
IF PORTA.2=0 THEN
GOTO SOL1
ELSE
GOTO TEST3

TEST3:
IF PORTA.3=0 THEN GOTO SOL2

IF PORTA.4=0 THEN GOTO DURDU
ENDIF


;GOTO TEST

;SAG1:


IF PORTA.4=0 THEN GOTO DURDU

GOTO TEST0


SOL1:
PORTB=%11000000
PAUSE 200
PORTB=%01100000
PAUSE 200
PORTB=%00110000
PAUSE 200
PORTB=%10010000
PAUSE 200
IF PORTA.4=0 THEN GOTO DURDU

GOTO SOL1

SOL2:
PORTB=%11000000
PAUSE 2000
PORTB=%01100000
PAUSE 2000
PORTB=%00110000
PAUSE 2000
PORTB=%10010000
PAUSE 2000
IF PORTA.4=0 THEN GOTO DURDU

GOTO SOL2

GOTO SAG1

SAG2:

PORTB=%00110000
PAUSE 2000
PORTB=%01100000
PAUSE 2000
PORTB=%11000000
PAUSE 2000
PORTB=%10010000
PAUSE 2000
IF PORTA.4=0 THEN GOTO DURDU

GOTO SAG2

DURDU:

LCDOUT $FE,1
PAUSE 500
LCDOUT "STEP MOTOR KONT."
PAUSE 500
LCDOUT $FE, $C0
LCDOUT "SEYIT ALI YIGIT"
PAUSE 500
LCDOUT $FE,1
LCDOUT "MOTOR KONUMU:"
LCDOUT $FE, $C0
LCDOUT "DURDU"
PORTD.3=1
;GOTO TEST
END

ete

Kudret Bey,

Derleme konusundaki sorunu dile getirmek istiyorum.
Bir derleme yapabilmeniz için 3 şeye ihtiyaç var. Bunlar;
1. MCS editör programı ki bunu yüklediniz. Yükleme yeri C:\Programfiles\Mechanique\MCS şeklinde olmalı. Çokda önemli değil ama kendi yüklediği default adreste olmasında yarar var.
2. Basic Derleyicisi; Bu derleyiciyi artık ya demo olanını yada ilaçlı bir sürümünü bulup C:\PBP şeklinde C ana klasörüne yüklemeniz gerekiyor.
3. Basic dilinde yazılmış bir program.

Derleme iine geçmeden ön ce bazı düznlemelerde yapmak gerekiyor. MCS bir editör dür kendi başına derleme yapmaz yapamaz. Ya Basic derleyicisini yada MPASM yi kullanır. Basic derleyicisini kullanabilmesi için ona yerini göstermek gerekir.
View menüsünde "Compile & Program Options" şeklinde bir seçenek var. Onu seçin. Karşınıza 3 butonlu bir seçenek gelecektir. Bunlar Compiler - Assembler ve Programmer. En sondaki önemli değil. Ama ilk ikisi derleme için önemli.
Compiler seçeli gelir zaten. Altında find manually veya yanında find automatically diye iki butonvar. Bence manually seçin ve açılan penceredn Basic derleyicisinin adresini gösterin. Ekranda C:\PBP şeklinde gösterilmiş adreside görmeniz gerekiyor.
64 bit makinalar Basic derleyicisini kullanamıyor. Derleyici 32 bit çalışıyor çünki. Bunun yerine MPASM kullanmak zorundalar.
Ayrıca 18F seriside MPASM kullanılarak derlenmek zorunda. Bu nedenle en iyisi ortada yer alan Assembler seçeneğinide seçip onada MPASM klasörünün yerini gösterin.  Makinanızada MPLAB kurulu ise (ASM de program yazdığınız için) orada MPASM klasörü olması gerek. Ama makinanızda Proteus kurulu ise orada Tools menüsünde MPASM klasörü yer almaktadır. Bunlardan birisini gösterseniz yeterli.
Artık derleme yapacak hale gelmiş oluyorsunuz. Programı yazın yada yükleyin , yukardaki kutucukta uygun işlemciyi seçin ve solda yer alan derle butonuna tıklayın. Programda hata yok ise derleme sorunsuz yapılacaktır.
Hata var ise aşağıda solda ikaz lar alacaksınız. Her ikaz bir satırı işaret eder zaten programda otomatik olarak ilk hata satırına gider.
BAsicde yeni program yazmaya başladınız. Hata yapmanız çok doğal. Her derleyicide olduğu gibi komutların yazılım formatı vardır. Onun dışına çıkarsanız hata verir program.
Mesela
IF - THEN - ELSE -ENDIF  bir dairesel döngü gibidir.
If ile başlar ve bir şart komutu verirsin.  IF A=5 THEN  yani A=5 ise şöyle yap gibi,
SOnra B=5: C=7 gibi şarta bağlı komutlarını verirsin. Sonra
ELSE dersin  bu Else yalnız başına olmalıdır yanında bir şey yazmamalıdır.
Bunun anlamı başta IF yanına koyduğumuz şart doğru değilse demek yani örneğimizde şayet A=5 değil ise şunları yap;
C=2:Z=5
ve en sona da ENDIF komutunu koyar daireyi kapatırız daha doğrusu komutu kapatırız. Komutun işlenmesi IF ile başlar endif ile sona erer. Ondan sonra artık bu komuta ait baika bir komut yazamayız her şey IF-ENDIF arasında olmalıdır.

En iyisi karşılaştığın ve anınında çözüm bulamadığın hataları buraya yaz hemen cvaplayalım bu şekilde kafana daha çabuk oturacaktır sistem.

Ete




Powered by EzPortal