PROTON da BUTONLARLA menu oluşturma (YARDIM)

Başlatan Hattusa, 14 Haziran 2010, 21:25:53

Hattusa

s.a.
proton veya PBP kullanan arkadaşlarım lütfen yardım edin.
(öncelikle belirtmek isterim ki siteye uzun bi süre giremedim, bu siteye girmek gerçekten zor, explorer hata veriyordu, son bir haftadır elh. sorunsuz giriyorum)
SORUNUMA GELİNCE;

protonda 16F876 ile bir program yazmaya çalışıyorum. elimde 4 buton var ve ben bu butonlarla bir menu oluşturmaya çalışıyorum. 1-2 denemem oldu ama isisde çalışan gerçekte çalışmadı. nette menü oluşturma ile ilgili aklımın yatacağı düzgün bir örnek yazılım bulamadığım için yardım istiyorum.

evet elmde 4 buton var. bunlar
1. MENU butonu
2.YUKARI butonu
3.ASAĞI butonu
4. ENTER butonu


bu butonlarla ben yazılım içerisinde ilgili yerlere dallanmak istiyorum. mesela;
1.ses azaltma, artırma
2. frekans değiştirme
3. hassasiyet azaltıp, artırma,
4. güç artırma, azaltma

bunu nasıl yaparım. bununla ilgili örnek yazılım varmı?
yada nasıl öğrenirim. (özellikle MUHİDDIN HOCAM) balık tutmayı sizden öğrendim ama balık oltadan düşüyo, kenara çekemiyorum. ya balığı tutup verin yada aç karnımı doyurun (ben tutmayı öğrenmeyi tercih ederim  ;D
vardım ilim meclisine eyledim talep, meğer ilim en gerideymiş illa EDEP, illa EDEP <muhyiddin Arabi K.S.>

muhittin_kaplan

çeşitli yöntemleri olabilir. yanlız ben olsam menu için rb0 interrup ını kullanırdım. ben buraya bir akış diyagramı çizeyim. ona göre kodları yazmaya çalışalım sonra.

muhittin_kaplan


muhittin_kaplan

Bunu bir denek gerek. yanlız lcd işlemlerini felan yazmadım. onları gerekli yerlere yazarsınız.

Hattusa

hocam konuya örnek teşkil edecek basit bir yazılım örneği elinizde mevcut mu? malum kopyeci bir milletiz, konuyu anlama adına
vardım ilim meclisine eyledim talep, meğer ilim en gerideymiş illa EDEP, illa EDEP <muhyiddin Arabi K.S.>

muhittin_kaplan

Yok ama akşama yazayım. 2x16 lcd ve 16f877a kullanacağım (18f4520 kullansak ne olur yavaş yavaş o işlemcilere geçmek gerek artık)

Hattusa

s.a.
usta haklısınız ama şu yazılımı öğrenme noktasında eksiklerimiz çok gidermeye çalışıyoruz sayenizde... inanın bazen öğrenmek için kopye şart oluyor
vardım ilim meclisine eyledim talep, meğer ilim en gerideymiş illa EDEP, illa EDEP <muhyiddin Arabi K.S.>

muhittin_kaplan

#7
'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2010 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 15.06.2010                                        *
'*  Version : 1.0                                               *
'*  Notes   : MEnu Demo                                         *
'*          :                                                   *
'****************************************************************

            Include "proton_4.inc"
            On Interrupt GoTo intRutine
            
            
;----------------------------------------------------
            Symbol RBIF = INTCON.0 ' RB Port Interrupt Flag
            Symbol INTF = INTCON.1 ' RB0 External Interrupt Flag
            Symbol T0IF = INTCON.2 ' TMR0 Overflow Interrupt Flag
            Symbol RBIE = INTCON.3 ' RB Port Change Interrupt Enable
            Symbol INTE = INTCON.4 ' RB0 External Interrupt Enable
            Symbol T0IE = INTCON.5 ' TMR0 Overflow Interrupt Enable
            Symbol PEIE = INTCON.6 ' Peripheral Interrupt Enable
            Symbol GIE = INTCON.7  ' Global Interrupt Enable

            INTE=1
            GIE=1
;----------------------------------------------------

            Dim SesAyar As Byte
            Dim FrAyar As Byte
            Dim GucAyar As Byte
            Dim HassAyar As Byte
            
            Dim MenuDeger As Byte
            
            Symbol Up=PORTB.1
            Symbol Down=PORTB.2
            
 Main:
            Select Case MenuDeger
                Case 0
                    GoSub Ses
                Case 1
                    GoSub Frekans
                Case 2
                    GoSub Hassasiyet
                Case 3
                    GoSub Guc
            EndSelect
                        
            GoTo Main
 
            
 Ses:
            Print At 1,1,"Ses Ayar"
            If Up=1 Then Inc SesAyar
                DelayMS 50                
            If Down=1 Then Dec SesAyar
                DelayMS 50
            Print At 2,1,DEC3 SesAyar
            Return            
 Frekans:
            Print At 1,1,"Frekans Ayar"
            If Up=1 Then Inc FrAyar
                DelayMS 50                
            If Down=1 Then Dec FrAyar
                DelayMS 50
            Print At 2,1,DEC3 FrAyar
            Return 
 Hassasiyet:
            Print At 1,1,"Hassas Ayar"
            If Up=1 Then Inc HassAyar
                DelayMS 50                
            If Down=1 Then Dec HassAyar
                DelayMS 50
            Print At 2,1,DEC3 HassAyar
            Return 
 Guc:
            Print At 1,1,"Guc Ayar"
            If Up=1 Then Inc GucAyar
                DelayMS 50                
            If Down=1 Then Dec GucAyar
                DelayMS 50
            Print At 2,1,DEC3 GucAyar
            Return 
     Disable
 intRutine:           
        GIE=0
        INTE=0
        Inc MenuDeger
        If MenuDeger>3 Then MenuDeger=0
        INTF=0
        INTE=1
        GIE=1
        Resume
        Enable
        Stop

http://www.4shared.com/file/iH9P2smP/menu.html
devre yukarda

Hattusa

s.a.
muhiddin ustam ilginiz için teşekkür ederim. kodu bir deneyeyim. (demek insanlık ölmedi hala yaşıo  :D )
vardım ilim meclisine eyledim talep, meğer ilim en gerideymiş illa EDEP, illa EDEP <muhyiddin Arabi K.S.>

Hattusa

s.a.
muhiddin ustam, kod ve isis simüle süper çalışıyor. şimdi kurduğum devremde bi deneme yapayım.
tekrar teşekkür ederim
vardım ilim meclisine eyledim talep, meğer ilim en gerideymiş illa EDEP, illa EDEP <muhyiddin Arabi K.S.>

mustafa_ozcan

s.a.
muhittin hocam
biraz bu konu dışında ama opampdan aldığımız sinyalde parazit v oynaması oluyor bunu yazılım içersinde nasıl stabil yaparız.

muhittin_kaplan

nereye bağlıyorsunuz opamp çıkışını

Hattusa

Alıntı yapılan: muhittin_kaplan - 16 Haziran 2010, 00:14:05
nereye bağlıyorsunuz opamp çıkışını

s.a.
muhiddin hocam mustafa ile beraberiz bu projede amatörce, simetrik besleme olmayan bir op-amp çıkışından  gerilim bölücü dirençle adc okutuyoruz. ortalama alma tekniği kullanıyoruz, ancak opamp çıkışında dc sinyali var ve sinyal stabil değil analog kısımla ilgili sorun var sanırım.
vardım ilim meclisine eyledim talep, meğer ilim en gerideymiş illa EDEP, illa EDEP <muhyiddin Arabi K.S.>

Hattusa

s.a.
hocam bir konuyu daha açıklığa kavuşturabilirmiyiz. ben 16f876 ile 10 bit adc almak istiyorum. adc yi aldığım nokta başlangıcında  portA.3 yı high yaptım adc bitiminde bu portu low yaptım. osilaskopla baktığımda bu high ve low süresi 50-60 uS gibi bir zamanda gerçekleşiyor. bu adc süresi bu tip bir işlemcide 20uS olması gerekmiyormuydu? ya da daha kısa bir süre ADC okutma yapabilirmiyim, işlemciyi veya harici adc entegresi kullanmadan yani işlemcinin kabul edebileceği min. süre ne kadar olabilir.
yazdığım kodU İNCELEYEBİLİRMİSİNİZ sorunum nerde acaba? (Kodun ilgili yerlerini verdim, parça parca kafa karıştırmaması için)

Device = 16F876A   ' Selected PICMicro
Xtal = 16   ' Oscillator frequency  16 MHz

'-------------------------- ADC settings ------------------------------------
                                                                   
Declare  Adin_Res 10   ' Sets the number of bits in the result
Declare  Adin_Tad 32_FOSC   ' Sets the ADC's clock source
Declare  Adin_Stime  50   ' Allows the internal capacitors to fully charge

-------------------------- ADCON0, ADCON1 -----------------------------------

ADCON1 = %10001110 ' ADCON1 register value
ana:

        TR2 = 1
        DelayUS 100
        TR2 = 0  
        FR = 1 '1. pals
        DelayUS 300
        FR = 0
        DelayUS 70
        TR4 = 1
        DelayUS 10
        DD1 = ADIn 0
        TR4 = 0
        DelayUS 630        
        TR5 = 1
        DelayUS 45
        TR5 = 0
        DelayUS 90000
vardım ilim meclisine eyledim talep, meğer ilim en gerideymiş illa EDEP, illa EDEP <muhyiddin Arabi K.S.>

Hattusa

vardım ilim meclisine eyledim talep, meğer ilim en gerideymiş illa EDEP, illa EDEP <muhyiddin Arabi K.S.>