Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d

Ana Menü

problem

Başlatan seco06, 24 Ocak 2006, 18:52:09

seco06

MENU:
:arrow:   HIGH PORTC.5
  PAUSE 50
  LCDOUT $FE,1
  LCDOUT $FE,$87,"YAZ ",2
  LCDOUT $FE,$C7,"KI",3," ",1
  IF YUKARI=0 THEN
  LOW PORTC.4
  GOTO YAZ
  ENDIF
  IF ASAGI=0 THEN AYAR
  IF SEC=0 THEN BASLA
  GOTO MENU

AYAR:
    GOSUB KOMBI
    PAUSE 50
    LCDOUT $FE,2," ",2,1,"  ISI AYARI"

    READ 0,AYARHAM
    PAUSE 50
    LCDOUT $FE,$C0,DEC2 (AYARHAM/2),".",DEC1_(AYARHAM*10/2)//10,223,"C","   KOMB",4,"=",#ANAHTAR
    IF YUKARI=0 THEN
       AYARHAM=AYARHAM+1
       IF AYARHAM>60 THEN AYARHAM=30
    ENDIF
     
    IF ASAGI=0 THEN
       AYARHAM=AYARHAM-1
       IF AYARHAM<30 THEN AYARHAM=60
    ENDIF
    WRITE 0,AYARHAM
    IF SEC=0 THEN BASLA
 
  GOTO AYAR  

problem  high portc.5 yaptigimda ayar bolumunde bu komut calismiyor birde bunu denedim yine olmadi neden acaba?

MENU:
   :arrow: HIGH PORTC.5
  PAUSE 50
  LCDOUT $FE,1
  LCDOUT $FE,$87,"YAZ ",2
  LCDOUT $FE,$C7,"KI",3," ",1
  IF YUKARI=0 THEN
  LOW PORTC.4
  GOTO YAZ
  ENDIF
  IF ASAGI=0 THEN AYAR
  IF SEC=0 THEN BASLA
  GOTO MENU

AYAR:
     :arrow: HIGH PORTC.5
    GOSUB KOMBI
    PAUSE 50
    LCDOUT $FE,2," ",2,1,"  ISI AYARI"

    READ 0,AYARHAM
    PAUSE 50
    LCDOUT $FE,$C0,DEC2 (AYARHAM/2),".",DEC1_ (AYARHAM*10/2)//10,223,"C","   KOMB",4,"=",#ANAHTAR
    IF YUKARI=0 THEN
       AYARHAM=AYARHAM+1
       IF AYARHAM>60 THEN AYARHAM=30
    ENDIF
     
    IF ASAGI=0 THEN
       AYARHAM=AYARHAM-1
       IF AYARHAM<30 THEN AYARHAM=60
    ENDIF
    WRITE 0,AYARHAM
    IF SEC=0 THEN BASLA
 
  GOTO AYAR 8O

microcozmoz

Anlayamadığım ilk başta yani MENU: döngüsü içinde portc.5 high konumuna geçip daha sonra Ayar döngüsüne dallandığı zamanmı low oluyor??
"Bütün bu şerâitten daha elîm ve daha vahim olmak üzere, memleketin dahilinde, iktidara sahip olanlar gaflet ve dalâlet ve hattâ hıyanet içinde bulunabilirler."

seco06

aynen anlad1g1n gibi hocam menüde high ayarda low oluyor orada da high komutu kulland11m halde olmad1 ilgine simdiden teşekkür

microcozmoz

Kodunu bu şekilde derleyip proteus da simule ettim portc.5 high konumunda kalıyor...Benim iptal ettiğim satırlardan dolayı sorunun  kaynaklandığını sanıyorum..Bu şekilde benim iptal ettiklerimi sırayla ekleyerek dene bence

Asm
       device  pic16F877, xt_osc, wdt_off, pwrt_on, protect_off
EndAsm

DEFINE	OSC 4

TRISD = %00001111
TRISC = %00000000
TRISB = %00000000
TRISA = %11111111

YUKARI         VAR PORTD.2  '
ASAGI          VAR PORTD.3  '

AYARHAM VAR BYTE 
ANAHTAR VAR BYTE



'*********LCD TANIMLAMA************

   define  lcd_dreg    portb
   define  lcd_dbit    4
   define  lcd_rsreg   portb
   define  lcd_rsbit   2
   define  lcd_ereg    portb
   define  lcd_ebit    3
   define  lcd_bits    4
   define  lcd_lines   4

MENU: 
HIGH PORTC.5 
PAUSE 50 
LCDOUT $FE,1 
LCDOUT $FE,$87,"YAZ ",2 
LCDOUT $FE,$C7,"KI",3," ",1 
IF YUKARI=0 THEN 
LOW PORTC.4 

ENDIF 
IF ASAGI=0 THEN AYAR 
 
GOTO MENU 

AYAR: 
HIGH PORTC.5 

PAUSE 50 
LCDOUT $FE,2," ",2,1," ISI AYARI" 

READ 0,AYARHAM 
PAUSE 50 
 
IF YUKARI=0 THEN 
AYARHAM=AYARHAM+1 
IF AYARHAM>60 THEN AYARHAM=30 
ENDIF 

IF ASAGI=0 THEN 
AYARHAM=AYARHAM-1 
IF AYARHAM<30 THEN AYARHAM=60 
ENDIF 
WRITE 0,AYARHAM 


GOTO AYAR 

END
"Bütün bu şerâitten daha elîm ve daha vahim olmak üzere, memleketin dahilinde, iktidara sahip olanlar gaflet ve dalâlet ve hattâ hıyanet içinde bulunabilirler."

ete

Bu sorunun iki sebebi olabilir.

-Birincisi TRISC=0 yani tüm c protunu çıkış olarak ayarlamamış olabilirsin. Veya en azından PortC.5 çıkış olarak ayarlanmamıştır.

- İkincisi AYAR bölümünde GOSUB KOMBI diye bir satır var. Program Kombi ye gidiyor ve muhtemelen PortC.5 orada konum değiştiriyor olabilir. Zira KOmbi bölümünü buraya vermemişsin.

ETE
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

seco06

evet hakl1 olabilirsin ete proteusta problem yasamiyordum  ama devreyi gerçekte çalistirdigimda problem oluyordu. dedigin gibi komb1ye dallandiginda konum degistiriyor. yinede ilginç bana gore ben orada herhangi bir islem yapmiyorum o porta neden degistiriyor.
kombi alt rutinide boyle
KOMBI:
    READ 0,AYARHAM
    IF AYARHAM=255 THEN
    AYARHAM=40
    WRITE 0,AYARHAM
    ENDIF
   
    IF ISIHAM>=AYARHAM+2 THEN  
     ANAHTAR=0
     ROLE=0
    ENDIF
   
    IF ISIHAM<=AYARHAM-2 THEN
     ANAHTAR=1
     ROLE=1
    ENDIF
  RETURN

ete

Sorun çözüldüdemi teşekkürler dedin yoksa hala sorun devam ediyormu?.
diyor ise, tüm programı ve isis dosyasını Hemenpaylaş'a yüklede bir inceleyelim.

ETE
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

seco06

sorun çözüldü dostum
sorun kombi ye dallandığıında high low a düşüyormus
bazen basit şeyleri bir kişi göremiyor
teşekkurler dostum