Etepic

Diğer diller ve Derleyiciler => Proton Basic => Konuyu başlatan: onurinci - 30 Eylül 2023, 22:58:16

Başlık: Radyo Alıcısı Thumbwheel switch
Gönderen: onurinci - 30 Eylül 2023, 22:58:16
arkadaşlar merhabalar ,Forumda Proton yazıtlarının canlandığını farkettim.şansımı deneyeyim dedim.
Proton bana bayağı bir uzak.PB'de hafızaya alma işlemlerinde pek kötü değilim.ama proton gözümde hiç canlanmadı.
elimde 45 yıllık bir HF alıcı var 10KHz 30MHz arası.çok eski bir derginin arşiv sayfasında bana yardımcı olabilecek bir program buldum.Proton'un emekleme döneminde yazılmış, üzerinde baya bir değişiklik yapıp derlemeyi başardım.
7 adet Thumbwheel switch kötü kullanımdan kırılmış ve bulunması mümkün değil.PLL devresinde Frekansları ayar edebilmek için 7 adet 0...9'a BCD kod üretiyorlar.buraya kadar devreyi kurdum ve alıcıyı kusursuz çalıştırdım fakat.program ayar edipte en son bıraktığım yeri saklama yada kaydetme olanağına sahip değil .tek eksik yanı bu gibi.  program satırlarının en dibinde bir kaç satırlık yer 7.092.000 yazar yer bu default frekanstan açılıyor.program 100Hz'lik adımlar ile ilerleyebiliyor .10Hz'lik kısmı yazılmamış koma durumunda.sıkıcı bir durum benim .için en en önemli aradığım özellik.akşam dinlediğim frekansı öbür akşam açtığımda bir ayar yapmadan orada durması.görüşlerinize açığım.simulasyon dosyası ve yazılım ektedir.

Device 16F628A
Config CPD_OFF,CP_OFF,BODEN_OFF,MCLRE_OFF,PWRTE_ON,WDT_OFF,INTRC_OSC_NOCLKOUT,LVP_OFF
Xtal=4
All_Digital = TRUE
;Declare Optimiser_Level = 3

Declare LCD_RSPin = PORTB.0         
Declare LCD_ENPin = PORTB.3         
Declare LCD_DTPin = PORTB.4    
Declare LCD_Interface = 4            '4-bit Interface
Declare LCD_Lines = 2                 'in this case 2 lots of 2 lines
Declare LCD_Type = 0
Declare PORTB_Pullups = TRUE

Dim Tmp        As Byte 
Dim TmpOld [8] As Byte 
Dim Frq        As Dword
Dim Frq704C    As Dword
Dim KeyN       As Byte 
Dim Ypos       As Byte 
Dim Xpos       As Byte
Dim XposM      As Byte 
Dim FrqD [8]   As Byte
Dim Pw         As Dword 
Dim T          As Byte 
Dim I          As Byte 
Dim ErrorCF    As Bit
Dim DataBit    As Bit
Dim Nu         As Float
Dim old        As Byte 
Dim new        As Byte 
Dim var1       As Byte
;---------------------
Dim Onr        As Byte
;---------------------

Declare SDA_Pin PORTB.1
Declare SCL_Pin PORTB.2 

Symbol SDA=PORTB.1 
Symbol SCL=PORTB.2


Main:


TRISA= %00000111 : PORTA= 0
TRISB= %00000000 : PORTB= 0
    DelayMS 500
    Cls
    
    Print At 1, 1, "ITT MACKAY 3030A"
    Print At 2, 1, " Marin Receiver "
    
    DelayMS 1500
    Cls
    GoSub DefaultFrq
    ErrorCF =0
    GoSub CalculateFrq
    GoSub PrintFrq
    GoSub InvFrq
    While 1 = 1
KeyN = 0
KeyN = KeyN + PORTA.0
KeyN = KeyN + PORTA.1 * 2
KeyN = KeyN + PORTA.2 * 4
KeyN = 7 - KeyN
    DelayMS 200
 Select KeyN
  Case 1
    GoSub UpKey
  Case 2
    GoSub DownKey
  Case 3
    GoSub RightKey
  Case 4
    GoSub LeftKey
 EndSelect
    Wend
    End

LeftKey:
    If XposM  < 6 Then
    Inc XposM
    Else
    XposM = 0
    EndIf
    GoSub Cursors
    Return

RightKey:
    If XposM > 0 Then
    Dec XposM
    Else
    XposM = 6
    EndIf
    GoSub Cursors
    Return

UpKey:
    GoSub OldFrqD
    I = XposM + 1
    Repeat
    If FrqD [I-1] = 9 Then
    FrqD [I-1] = 0 
    Dec I
    Else
;-------------------------------    
    Onr=FrqD[I-1]
    Inc Onr
    FrqD[I-1]=Onr
;-------------------------------- 
;;    Inc FrqD  [I-1]  ; ?????
    I = 0
    EndIf
    Until I = 0
    GoSub CalculateFrq
    If ErrorCF = 1 Then
    GoSub FrqDOld
    ErrorCF = 0
    Return 
    EndIf
    GoSub PrintFrq
    GoSub InvFrq
    Return

DownKey:
    GoSub OldFrqD
    I = XposM + 1
    Repeat
    If FrqD [I-1] = 0 Then
    FrqD [I-1] = 9
    Dec I
    Else
;------------------------    
    Onr=FrqD[I-1]
    Dec Onr
    FrqD[I-1]=Onr
;------------------------    
;;    Dec FrqD [I-1]  ; ?????
    I = 0
    EndIf
    Until I = 0
    GoSub CalculateFrq
    If ErrorCF = 1 Then
    GoSub FrqDOld
    ErrorCF = 0
    Return 
    EndIf
    GoSub PrintFrq
    GoSub InvFrq
    Return

CalculateFrq:
    Pw = 1
    Frq = 0
    For T = 0 To 7
    Frq = Frq + FrqD [7-T] *Pw
    Pw = Pw * 10
    Next T
    If Frq < 10000 Then
    ErrorCF = 1
    Print $FE ,$0C
    Print At 2, 2, "Limit's Min Freq"
    DelayMS 1000
    Print At 2, 1, "                "
    GoSub Cursors
    EndIf
    If Frq > 30000000 Then
    ErrorCF = 1
    Print $FE ,$0C
    Print At 2, 2, "Limit's Max Freq"
    DelayMS 1000
    Print At 2, 1, "                "
    GoSub Cursors
    EndIf
    ' If Frq > 600000  and < 1500000 Then
    Return

PrintFrq:
    Print $FE ,$0C
    Xpos = 6
    Print At 1, 2, "MHz "
    For T = 0 To 7 Then
    If T = 2 Or T = 5 Then
    Cursor 1, Xpos
    Print "." , @FrqD[T]
    Inc Xpos
    Inc Xpos
    Else
    Cursor 1, Xpos
    Print  @FrqD[T]
    Inc Xpos
    EndIf
    Next T
    GoSub Cursors
    Return

Cursors:
 Select XposM
  Case 0
    Xpos = 6
  Case 1
    Xpos = 7
  Case 2
    Xpos = 9
  Case 3
    Xpos = 10
  Case 4 
    Xpos = 11
  Case 5
    Xpos = 13
  Case 6
    Xpos = 14
  Case 7
    Xpos = 15
 EndSelect
    Print $FE ,$0E
    Cursor 1, Xpos
    Return

InvFrq:

    var1 = 0 + (FrqD [0] + FrqD [1] * 16) 
    I2COut SDA ,SCL , %01110000 , [var1]
    
    var1 = 0 + (FrqD [2] + FrqD [3] * 16)  
    I2COut SDA ,SCL , %01110010 , [var1]
    
    var1 = 0 + (FrqD [4] + FrqD [5] * 16)  
    I2COut SDA ,SCL , %01110100 , [var1]
    
    var1 = 0 + (FrqD [6] + FrqD [7] * 16)  
    I2COut SDA ,SCL , %01110110 , [var1]
    Return

OldFrqD:
    T = 8
    Repeat 
    Dec T
    TmpOld [T-1] = FrqD [T-1]
    Until T = 0
    Return

FrqDOld:
    T = 8
    Repeat 
    Dec T
    FrqD [T-1] = TmpOld [T-1]
    Until T = 0
    Return

DefaultFrq:
    FrqD [0] = 0
    FrqD [1] = 7
    FrqD [2] = 0
    FrqD [3] = 9
    FrqD [4] = 2
    FrqD [5] = 0
    FrqD [6] = 0
    FrqD [7] = 0
    Return
Başlık: Ynt: Radyo Alıcısı Thumbwheel switch
Gönderen: Pepe - 01 Ekim 2023, 00:11:53
.
Başlık: Ynt: Radyo Alıcısı Thumbwheel switch
Gönderen: onurinci - 01 Ekim 2023, 00:43:13
@Pepe Eres grande, si tienes la oportunidad, me gustaría que el último dígito fuera 10 Hz.
Başlık: Ynt: Radyo Alıcısı Thumbwheel switch
Gönderen: Pepe - 01 Ekim 2023, 01:29:47
no entiendo la pregunta, muestre una imagen de lo que desea
Başlık: Ynt: Radyo Alıcısı Thumbwheel switch
Gönderen: onurinci - 01 Ekim 2023, 01:46:13
LSB Readout Last Digit 10Hertz Resolution not working.
 display'in en sağ 10Hz gösterme kısmı programda yok.çalışmıyor PCF8574'de çıkış yok , o bölüm için. olsa güzel olurdu.
Başlık: Ynt: Radyo Alıcısı Thumbwheel switch
Gönderen: Pepe - 01 Ekim 2023, 02:14:39
.
Başlık: Ynt: Radyo Alıcısı Thumbwheel switch
Gönderen: onurinci - 01 Ekim 2023, 02:40:00
Vaya, eso es perfecto, genial. ¿Puedes reemplazar el signo que marqué con una coma?
Başlık: Ynt: Radyo Alıcısı Thumbwheel switch
Gönderen: Pepe - 01 Ekim 2023, 03:55:11
.
Başlık: Ynt: Radyo Alıcısı Thumbwheel switch
Gönderen: onurinci - 01 Ekim 2023, 10:17:47
Va genial, estamos por llegar al final ¿Puede el cursor empezar desde la casa que marqué en cada inicio?
Başlık: Ynt: Radyo Alıcısı Thumbwheel switch
Gönderen: elektro77 - 01 Ekim 2023, 12:23:16
Alıntı yapılan: Pepe - 01 Ekim 2023, 03:55:11modificado con coma
si puede podria donar algo por el trabajo realizado
Devre şeması da olsaydı, belki ben bağış yapabilirdim.
Başlık: Ynt: Radyo Alıcısı Thumbwheel switch
Gönderen: onurinci - 01 Ekim 2023, 18:09:27
@
Başlık: Ynt: Radyo Alıcısı Thumbwheel switch
Gönderen: Pepe - 01 Ekim 2023, 19:46:18
Ver #18
Başlık: Ynt: Radyo Alıcısı Thumbwheel switch
Gönderen: onurinci - 01 Ekim 2023, 20:30:02
La opción anterior de Autoguardado era muy buena, pero se ha vuelto muy complicada y difícil. Si no grabas manualmente el lugar que escuchaste, tendrás que recordarlo mañana. De hecho, sería fantástico si existiera la posibilidad de guardar un cursor en la versión anterior. Por ejemplo, el cursor de esta última versión. Se abre desde el lugar correcto. Saludos cordiales.
Başlık: Ynt: Radyo Alıcısı Thumbwheel switch
Gönderen: rexo - 01 Ekim 2023, 20:40:16
Hola Pepe,

Te envié un mensaje privado, te agradecería que le echaras un vistazo y me respondieras.
Başlık: Ynt: Radyo Alıcısı Thumbwheel switch
Gönderen: Pepe - 01 Ekim 2023, 21:03:09
Ver #18
Başlık: Ynt: Radyo Alıcısı Thumbwheel switch
Gönderen: onurinci - 01 Ekim 2023, 21:20:54
Estoy agradecido por tu ayuda. Lo de la memoria es una muy linda oportunidad, pero el problema es que escuchaste 07.050.000MHz y te gustó, dijiste que lo volverías a escuchar mañana y apagaste el receptor. Por cierto, no te acuerdas. la frecuencia que escuchaste. En este caso comienza el caos. Sin embargo, en las versiones anteriores esta situación era muy buena, dijiste que la volverías a escuchar. El dispositivo lo hizo automáticamente sin esperar a que hicieras nada. En este En este caso, siempre existía el requisito de grabar manualmente. Esto era lo que quería decir.
Başlık: Ynt: Radyo Alıcısı Thumbwheel switch
Gönderen: Pepe - 02 Ekim 2023, 05:10:52
.
Başlık: Ynt: Radyo Alıcısı Thumbwheel switch
Gönderen: onurinci - 02 Ekim 2023, 09:58:23
Gracias por el teclado, es muy útil. Solo me queda un pedido. Vi que en mis cajas solo hay PCF8574, quería evaluarlos. pero sus direcciones son diferentes. Encontré una solución a la dirección, ¿puedes adaptarla al programa final? ..Con amor...


PCF8574A.......................
InvFrq:

    var1 = 0 + (FrqD [0] + FrqD [1] * 16) 
    I2COut SDA ,SCL , %01110000 , [var1]
    
    var1 = 0 + (FrqD [2] + FrqD [3] * 16)  
    I2COut SDA ,SCL , %01110010 , [var1]
    
    var1 = 0 + (FrqD [4] + FrqD [5] * 16)  
    I2COut SDA ,SCL , %01110100 , [var1]
    
    var1 = 0 + (FrqD [6] + FrqD [7] * 16)  
    I2COut SDA ,SCL , %01110110 , [var1]
    Return




PCF8574...................................

InvFrq:

    var1 = 0 + (FrqD [0] + FrqD [1] * 16) 
    I2COut SDA ,SCL , %01000000 , [var1]
    
    var1 = 0 + (FrqD [2] + FrqD [3] * 16)  
    I2COut SDA ,SCL , %01000010 , [var1]
    
    var1 = 0 + (FrqD [4] + FrqD [5] * 16)  
    I2COut SDA ,SCL , %01000100 , [var1]
    
    var1 = 0 + (FrqD [6] + FrqD [7] * 16)  
    I2COut SDA ,SCL , %01000110 , [var1]
    Return

PCF8574 için Simulasyon dosyası ektedir..
Başlık: Ynt: Radyo Alıcısı Thumbwheel switch
Gönderen: Pepe - 02 Ekim 2023, 14:48:55
.
Başlık: Ynt: Radyo Alıcısı Thumbwheel switch
Gönderen: rexo - 02 Ekim 2023, 15:03:35
Pepe, ¿podrías por favor marcar tu casilla de mensaje privado?
Başlık: Ynt: Radyo Alıcısı Thumbwheel switch
Gönderen: onurinci - 03 Ekim 2023, 00:16:25
Pepe, gracias por todo, te recordaré cada vez que enciendo la radio, hombre de buen corazón...
Başlık: Ynt: Radyo Alıcısı Thumbwheel switch
Gönderen: Pepe - 04 Ekim 2023, 18:39:38
Gracias
Başlık: Ynt: Radyo Alıcısı Thumbwheel switch
Gönderen: ei - 19 Kasım 2024, 01:41:51
Üzerinden bir yıldan fazla zaman geçmiş ama alış frekansı 10 kHz'den başlayan bir HF alıcıyı merak ettim. Marka ve modeli nedir?
Başlık: Ynt: Radyo Alıcısı Thumbwheel switch
Gönderen: onurinci - 19 Kasım 2024, 12:45:33
ABD yapımı ITT Mackay Marine 3030A

ortadaki beyaz olan.

https://www.youtube.com/watch?v=4t9bvBW-Dl0
Başlık: Ynt: Radyo Alıcısı Thumbwheel switch
Gönderen: ei - 19 Kasım 2024, 14:46:39
Güzel radyo. Güle güle kullanın.