Donanım Haber Forum
Ana Sayfa | Kayıt ol | Profilim | Gelen Kutusu | DH Hız Aşırtma VT | Adres Defteri | Email'le üyeliklerim | Benim forumlarım | Fotoğraf Albümleri
Favorileriniz | Üyeler | Arama | SSS | Şikayet listesi | Uyarı listesi | Nick işlemleri
PROGRAMLAMADAN ANLIYANLAR(karışık uzman gerek)

İlgili konuları bak: (bu forumda | tüm forumlarda)

Bu isimle girdiniz: Guest
Bu konudaki kullanıcılar: hiç
  Basılabilir versiyon
Tüm forumlar >> [Donanım / Hardware] >> Elektronik >> PROGRAMLAMADAN ANLIYANLAR(karışık uzman gerek) Sayfa: [1]
Giriş
Mesaj << Daha eski konu   Daha yeni konu >>
xxxxveyselxxxx

Mesaj: 509


 5 Temmuz 2008; 1:42:20 
Bu mesajla ilgili şikayetinizi bu icon a tıklayarak yapabilirsiniz.

Arkadaşlar yaptığım bir projede uzaktan kumanda ile step motor kontrol etmeyi planlıyorum fakat programlama bilgimin yetmediği bir yerde takılıp kaldım sizlerin yardımını bekliyorum sorunşu programdada görüldüğü gibi seri girişten bilgi geliyor bilginin içeriği seçiliyor eğer bilgi 253ise "v "adresine giriliyor "v "adresindeki işlem yapılıyor bu işlem arkadaşlar step motorun sağ doğru adım atmasını sağlıyor sonra tekrar v adresine gidilerek tekrar aynı işlem v döngüsü içinde devam ediyor yani motor sag adım atarak sag doğru sürekli dönüyor 247 bilgisi geldiğinde ise p adresine giriliyor ve p adresindeki işlem yapılıyor burdaki işlemde motorun sola dönmesi işlemi ve buda programda görüldüğü gibi sonsuz döngüde çünkü sürekli adım ata ata dönmesi lazım şidi buraya kadar güzel problem şu anlaşıldığı gibi kumandadan bastımızda p veya v adresine girecek sağ veya sola dönecek adrese göre yalnız adreslerden birine girdi diyelim p ye girdi döngünün sürekli olması gerektiği için doğal olarak döngüden çıkmıyoryani baska tusa basıp v adresine girmeye çalışırsak olmuyor kumandadan ilk hangi tuşa basarsak(ilk hangi adrese girerse)o yönde dönüyor diyer tuşa bassak bile aynı yönde devam ediyor programda döngünün olması şart döngüyü kaldırdımızda farklı tuşlara basınca sağ veya sola dönüyor step motor ama adım adım dönüyor yani her tuşa bastımızda bir adım atıyor sürekli dönmüyorKısaca döngü şart ama kumandadan diyer tuşa basıldığında döngüden çıkıp diyer döngüye girmeside gerek ben bir yol bulamadım umarım uzman arkadaşlar bir çözüm üretir şimdiden teşekkürler.
TRISA=%00000001
TRISB=0
porta.1=0
BILGI var BYTE
SYMBOL VERIIN=PORTA.0
PORTB=0
MAIN:
BILGI=0
Z
serIN2 VERIIN,813,[WAIT ("ETE"),BILGI]
SELECT CASE BILGI
CASE 253
V
high porta.1 'step motoru sağa döndüren döngü
PAUSE 500
low porta.1
PAUSE 500
high portb.5
PAUSE 500
low portb.5
PAUSE 500
GOTO V
CASE 247
P
high portb.6 'step motoru sola döndüren döngü
PAUSE 500
low portb.6
PAUSE 500
high portb.7
PAUSE 500
low portb.7
PAUSE 500
GOTO P
END SELECT
GOTO Z
END

_____________________________


NOKİA E60 İNTERNET CAMBAZI+512MB
samed2005

Mesaj: 365


 5 Temmuz 2008; 2:31:32 
Bu mesajla ilgili şikayetinizi bu icon a tıklayarak yapabilirsiniz.

Bu işlemi kesmelerle(sanırım interrupt diye yazılıyo ingilizcesi) yapabilirsin. p ve v nin yanında : olması gerekiyor yani
p:
v:
şeklinde yazmalısın

Sonraa kodları şu şekilde düzenlesen daha şık olur

TRISA = 31
TRISB = 0

Bilgi var byte
Temp var byte 
Konum var byte
Yon var byte

Konum = %1000
PORTB  = konum

Ana:
bilgi = PORTA
if bilgi = 253 then Yon = 1
if bilgi = 247 then Yon = 2
if yon = 1 then goto sag
if yon = 2 then goto sol

goto ana

Sag:
konum = konum >> 1
if konum = 0 then konum = %1000
portb = konum
pause 200
goto ana

Sol:
konum = konum << 1
if konum = %10000 then konum = %0001
portb = konum
pause 200
goto ana


Ben burda com portu kullanarak veri almayı bilmiyorum sen orada "bilgi=porta" yerine veri almak için gereken kodu yazacaksın. Sonra oradaki pause lerin önündeki 200 değerini istediğin gibi değiştirebilirsin bu motorun hızını etkiler

Edit: Bu kodlar motoru öncelikle belirli bir konuma getirir, sen yön seçene kadar sabit kalır sen yön seçincede motor aynı yönde sürekli dönmeye başlar taki sen aksi yönde dönmesini söyleyene kadar Durdurmak için reset tuşunu kullanabilirsin bu kodlara görede motor portb ye bağlı


< Bu mesaj bu kişi tarafından değiştirildi samed2005 -- 5 Temmuz 2008; 2:33:31 >


_____________________________


Türk Telekom'un her ay hiç bir hizmet vermeden 14,17 YTL almasına karşıysanız tıklayın
musallim

 

Mesaj: 711


 5 Temmuz 2008; 2:32:57 
Bu mesajla ilgili şikayetinizi bu icon a tıklayarak yapabilirsiniz.

Pause 500 ler ne işe yarıyor ?

Gelen değeri bir yere kaydet , interrupt kullan her bilgi geldiğinde gidip baksın gelen ne diye ...
Tabii bu iş için yollanan bilginin de tekrarlanıyor olması lazım(aynısı olsa bile).

Edit : @samed2005 benden önce yollamış ve daha güzel açıklamış sağolsun.


< Bu mesaj bu kişi tarafından değiştirildi musallim -- 5 Temmuz 2008; 2:33:53 >


_____________________________

samed2005

Mesaj: 365


 5 Temmuz 2008; 2:35:09 
Bu mesajla ilgili şikayetinizi bu icon a tıklayarak yapabilirsiniz.

ordaki pause 500 ler sanırım motorun her adımı arasındaki süre (0,5 saniye)

_____________________________


Türk Telekom'un her ay hiç bir hizmet vermeden 14,17 YTL almasına karşıysanız tıklayın
musallim

 

Mesaj: 711


 5 Temmuz 2008; 3:03:41 
Bu mesajla ilgili şikayetinizi bu icon a tıklayarak yapabilirsiniz.

İşte o değerler sürekli puls gelse de motoru kesik kesik çalıştırır.Az değilki 0.5 s ,her adımda ,adımlar 7.5 derece olsa bile.

_____________________________

xxxxveyselxxxx

Mesaj: 509


 5 Temmuz 2008; 15:03:37 
Bu mesajla ilgili şikayetinizi bu icon a tıklayarak yapabilirsiniz.

Beyler ilgilendiğiniz için saolun fakat yine olmuyor sorun şu dediğin gibi bilgi=porta kısmında porta.0 dan gelen seri bilgiyi okuttum (serIN2 VERIIN,813,[WAIT ("ETE"),BILGI]) komutuyla bilgi okutuluyor bilginin 253 yada 247 olmasına göre adresede dallanıyor motor sağ yada sola adım atıyor adrese dallanıp fakat sag sol adresinden çıkıp ana adresine tekrar dallanıldığında serIN2 VERIIN,813,[WAIT ("ETE"),BILGI] komutuna gelindiğinde burada kalıp porta.0 dan veri gelmesi bekleniyor gelmediği sürece burda kalıyor yani döngü dönmüyor. veri geldiğinde tekrar veriye göre adrese dallanıyor 1 adım atıyor tekrar ana adrese gelip seri bilgi yi okuma komutu serIN2 VERIIN,813,[WAIT ("ETE"),BILGI] burda kalıyor tek çare var gibi görünüyor oda interrupt kesme yapmak sanırım şöyle olacak porta.0 dan seri bilgi geldiğinde kesme yapılacak ve kesme adresindeki işlem uygulanacak döngülerden porta.0 dan seri bilgi geldiğinde kesme yapılarak çıkılacak fakat 16f84de kesme nasıl yapılıyor bilmiyorum 8051de seri haberleşme kesmesi vardı sanırım 16f84dede vardır bilen arkadaşlar lütfen yardımcı olabilirlermi şimdiden teşekkürler

_____________________________


NOKİA E60 İNTERNET CAMBAZI+512MB
musallim

 

Mesaj: 711


 5 Temmuz 2008; 15:11:53 
Bu mesajla ilgili şikayetinizi bu icon a tıklayarak yapabilirsiniz.

ETE ile pbp dersleri ya da ders notları gibi arat , daha önce verdim .
Dersleri çalış sonra dene.
Zaten elindeki de oradan (ç)alıntı.

_____________________________

kantırcı_1

 

Mesaj: 332


 5 Temmuz 2008; 15:15:36 
Bu mesajla ilgili şikayetinizi bu icon a tıklayarak yapabilirsiniz.

Seri iletişimde kesmeyi aktif etmelisin böylece her zaman gelen bilgi okunur.Programı ona göre düzenlersin...

_____________________________

samed2005

Mesaj: 365


 5 Temmuz 2008; 18:33:10 
Bu mesajla ilgili şikayetinizi bu icon a tıklayarak yapabilirsiniz.

İnternette bu konuyu araştırırken aşağıdaki adrese rastladım ve yazılanlara göre kodları düzenledim işte adres ve yeni kodlar

http://forum.antrak.org/Search/default.aspx?SearchFor=1&SearchText=powermann

TRISA = 31
TRISB = 0

Bilgi var byte
Temp var byte 
Konum var byte
Yon var byte

Konum = %1000
PORTB  = konum

Ana:
serin2 PortA.0,813,100,dallan,[wait("ETE"),bilgi]

Dallan:
if bilgi = 1 then Yon = 1
if bilgi = 2 then Yon = 2
if yon = 1 then goto sag
if yon = 2 then goto sol

goto ana

Sag:
konum = konum >> 1
if konum = 0 then konum = %1000
portb = konum
pause 200
goto ana

Sol:
konum = konum << 1
if konum = %10000 then konum = %0001
portb = konum
pause 200
goto ana


Derlemeyle ilgili bir sıkıntı yok ama proteusta seri portun nasıl kullanıldığını bilmediğim için simüle edemedim.

_____________________________


Türk Telekom'un her ay hiç bir hizmet vermeden 14,17 YTL almasına karşıysanız tıklayın
Sayfa:   [1]
Tüm forumlar >> [Donanım / Hardware] >> Elektronik >> PROGRAMLAMADAN ANLIYANLAR(karışık uzman gerek) Sayfa: [1]
Buraya git:



Donanım Haber Video İnceleme
Monster T2 Rex video
TV karti, cift cekirdekli islemci ve kablosuz ag yetenekleriyle ozgurlugun tadini cikartin
Enermax Chakra
yan kapakta 25cm lik sessiz fani olan genis ve hos gorunumlu bir kasa istermisiniz?