Picproje Elektronik Sitesi

DERLEYİCİLER => PICBasic => Konuyu başlatan: einstain90 - 02 Temmuz 2007, 14:22:04

Başlık: iki işlemi aynı anda yapma
Gönderen: einstain90 - 02 Temmuz 2007, 14:22:04
arkadaşlar 16f877 de iki microcip gibi ayrı ayrı işlemler yaptıra bilmem mümkünmü? mesela saat çalışırken aynı anda başka bir işlemi daha yapıcak
Başlık: iki işlemi aynı anda yapma
Gönderen: cuneytsezmis1 - 02 Temmuz 2007, 15:10:54
timer0 veya timer1 veya timer2 yi ve kesmeleri kullanarak yapabilirsin.forumları incelersen bulabilirsin.kolay gelsin.
Başlık: iki işlemi aynı anda yapma
Gönderen: uzaylivolkan - 02 Temmuz 2007, 15:13:31
Mikroişlemciler Yapıları nedeni ile aynı anda sadece bir iş yapabilirler. Ama Saat gibi işlemler İçin microişlemcilerin INTERRUPT (Kesme) dediğimiz özelliklerinden yararlanabilirsiniz. Size Timer INTERRUPT ile çalışan bir saat uygulaması gönderiyorum Kıristaliniz 4 mhz olacak

buda linkin

@ device INTRC_OSC_NOCLKOUT
CMCON   = 7
VRCON   = 0
'Program saat.bas
'işlevi 4 bit lcd
 '      Device 16F84
Define LCD_DREG PORTA
Define LCD_DBIT 0
Define LCD_RSREG PORTa
Define LCD_RSBIT 4
Define LCD_EREG PORTB
Define LCD_EBIT 3

Değişken
saat var   byte
dsaat var   byte
dakika var   byte
saniye var   byte
ticks var   byte
guncelle var   byte
'i var   byte
x var   byte
y var   byte
@ device   WDT_OFF
Pause   100
saat=0
dakika=0
saniye=0
ticks=0
guncelle=1
OPTION_REG=$55
INTCON=$a0

ON INTERRUPT  Goto tickint
trisb.4= 0
trisb.5= 0


' PORTB=0
' TRISB=%00011111
ana_dongu:
 if PORTA.7 = 1 Then dak_azalt
 if PORTA.6 = 1 Then dak_arttir
kontrol:
if guncelle=1 Then
Lcdout  $fe,1
dsaat=saat
if (saat // 12) =0 Then
  dsaat =dsaat + 12
Endif
' <  >
if saat < 12 Then
 Lcdout dec2 dsaat ,":" , dec2 dakika,":",dec2 saniye, " AM"
 else
Lcdout dec2 (dsaat - 12) ,":" , dec2 dakika,":",dec2 saniye, " PM"
Endif
guncelle = 0
Endif

'    if saniye =30 then
'  Pot PORTB.0,255,X
'    y= 58 - x
'    endif
'   if saniye /30 > 0 and saniye /30  < 5 then
'  Pot PORTB.0,255,X
'    y= 58 - x
' Pause   100
'Lcdout  $fe,1
' Lcdout "isi=: " ,#y
'  endif

Goto ana_dongu
dak_arttir:
  dakika=dakika + 1
  if dakika >=60 then
   dakika =0
saat=saat+1
 if saat >= 24 then
    saat=0
 Endif
Endif
Goto ark_sondur
  dak_azalt:  

     dakika=dakika - 1
  if dakika >=60 then
   dakika = 59
saat=saat - 1
 if saat >= 24 then
    saat=23
 Endif
Endif
ark_sondur:
   For i = 1 to 25
  pause 10
next i
guncelle = 1
Goto kontrol
Disable
tickint:

  ticks=ticks +1
  if ticks < 61 then tiexit
ticks =0
saniye = saniye + 1
if saniye >= 60 Then
  saniye=0
  dakika = dakika + 1
  if dakika >= 60 Then
  dakika=0
  saat = saat + 1
  if saat >= 24 Then
   saat=0
Endif
Endif
Endif
guncelle=1
tiexit:
INTCON.2=0
resume
End
saat.zip (http://www.dostevi.com/saat.zip)
Başlık: iki işlemi aynı anda yapma
Gönderen: einstain90 - 02 Temmuz 2007, 16:09:03
burada pause komutu yok 1 saniye nasıl ölçülüyor ben onu anlamadım yani kesme nedir kısaca anlata bilirmisin
Başlık: merhaba
Gönderen: malpaslan1979 - 03 Temmuz 2007, 01:56:22
Haftalardır kafamı karıştıran soruya cevap buldum gibi. Ama bazı şeyleri netleştirmek istiyorum. Şimdi sizin yazdıklarınıza bakılırsa pic sadece standart basit ve sürekli tekrarlı işleri sırayla yapan bir eleman. Yani bir plc gibi birden fazla kaynaktan girdi yapıp bu girdilere göre çıkışlarında işlem yaptırabileceğimiz bir alet değil. Doğru anlamış mıyım? Peki birden fazla işlemi yaptıramanın hiç yolu yok mu? Yani birden fazla kaynaktan gelen datayı girişleri sıraylada olsa işleyemez miyiz? Bu benim için önemli çünkü otomasyon ile ilgili bir bölümden mezunum ve başlangıç olarak pic düşünüyordum ama vereceğiniz cevaba göre plc ye yönlenmek daha mantıklı olacak gibi.

Saygılarımla
Başlık: iki işlemi aynı anda yapma
Gönderen: Göktuğ - 03 Temmuz 2007, 09:04:52
Cok hızlı calıstıgından cok kısa surelerde cok fazla işlem gercekleştirebilir. Ve sen aynı anda bir cok işlem yapılıyormus sanabilirsin.
Ayrıca PLC lerde de çeşitli firmaların mcu ları kullanılıyor.

Otomasyon mezunu isen zaten PLC lerden cok iyi anlaman gerekiyor. İkisini de ogrenebilirsin
Başlık: iki işlemi aynı anda yapma
Gönderen: CaFFeiNe - 03 Temmuz 2007, 10:11:54
çift çekirdek olmayan bir sistemde iki iş aynı anda yapılmaz PLC lerdede aynı şey geçerli

PLC lerin bir programı baştan aşağı işletmeleri için geçen bir döngü süresi vardır 3-4ms gibi ve bu programının boyutuna göre değişir
şimdi PLC saniyede birkaç yüz kere programı işletip gerekli girişlere karşı programındaki mantığa göre gerekli çıkışları verdiği için sen aynı anda birçok işi yapıyor zannedersin (haliyle saniyede birkaçyüz kere olan birşeyi gözünle bakarak anlayamazsın)

pic ile (yada başka mcu ile) donanımını tasarlayıp programını yazabiliyorsan PLC lerden çok daha ucuza çok daha fazla iş yaptırabilirsin

PLC lerin amacı insanların donanım kısmı ile fazla uğraşmaması LADDER ile sadece kumanda devrelerini bilen kişilerin bile kullanabilmesi kolaylığı, standart kumanda devrelerinin yerini alması vs.dir.

MCU programlamak ile PLC kullanmak arasındaki fark
ASM ile program yazmak ile BASIC ile program yazmak arasındaki farka benzer
Başlık: birden fazla iş
Gönderen: calicadnus - 03 Ağustos 2007, 21:55:43
16f877 de hard pwm üreteci vardır.
ilgili registerler kurulduğu zaman programdan bağımsız çalışır.bu vesile ile pic aynı anda başka işlere koştururken pwm çıkışını kesintisiz verebilir.
başka bir hareket bilmiyorum.
saygılar.