' Ersatzsoftware für abgebrannten Proz in ' 10GHz Abwärtsmischer von DG0VE Kon-DWN97107 ' mit "Deepsleep" Funktion möglich 'Hinweis, ' Der Mux-Ausgang des ADF4107 war über einen 330Ohm Widerstand mit dem Reset-Pin ' des ATTIny verbunden. GGF hatte Roberto das genutzt.Diesen Widerstad habe ich entferm $regfile = "attiny45.dat" $crystal = 8000000 '$baud = 19200 $hwstack = 40 $framesize = 40 $swstack = 15 ' Leitungen 4 ADF4107 Config Pinb.0 = Output Config Pinb.1 = Output Config Pinb.2 = Output ' MUx ' Config PINB5 = Input 'Erstmal nicht genutzt ' Schalter Config Pinb.3 = Input Config Pinb.4 = Input PortB.3 = 1 ' Pullups einschalten PortB.4 = 1 ' Pullups einschalten ' Abwärts Mischer DG0VE ADF_clk Alias Portb.0 ' ADF-Clock Pin5 PB0 ADF_dat Alias Portb.1 ' ADF-Daten Pin6 PB1 ADF_le Alias Portb.2 ' ADF-Enable Pin7 PB2 '************************************************************************* ' Werte für ADF 4107 '************************************************************************* ' Daten aus ADISimPLL Dim I_byte3 As Byte Dim I_byte2 As Byte Dim I_byte1 As Byte I_byte3 = &B1001_1111 I_byte2 = &B1000_0000 I_byte1 = &B1001_0010 ' Func-byte ' gleicher Inhalt wie Initbyte , bis auf Control-Bits, werden hier nicht verwendet ' Ref-count_byte Dim R_byte3 As Byte Dim R_byte2 As Byte Dim R_byte1 As Byte R_byte3 = &B0000_0000 R_byte2 = &B0000_1010 R_byte1 = &B0000_0000 ' AB COUNTER Dim AB_byte3 As Byte Dim AB_byte2 As Byte Dim AB_byte1 As Byte AB_byte3 = &B0001_0101 AB_byte2 = &B1111_1001 AB_byte1 = &B0000_0001 Dim Status as byte Status = 0 Dim Status_alt as byte Status_alt = 5 '************************************************************************* ' Init * '************************************************************************* Waitms 500 ' Sicherheitspause nach Reset '************************************************************************* ' Hauptschleife * '************************************************************************* Do ' 8800MHz/4400MHz 5500 If Pinb.3 = 1 And Pinb.4 = 1 Then Status = 1 AB_byte3 = &B0001_0101 AB_byte2 = &B0111_1100 End If ' 9000MHz/4500MHz 5625 If Pinb.3 = 1 And Pinb.4 = 0 Then Status = 2 AB_byte3 = &B0001_0101 AB_byte2 = &B1111_1001 End If ' 9200MHz/4600MHz 5750 If Pinb.3 = 0 And Pinb.4 = 1 Then Status = 3 AB_byte3 = &B0001_0110 AB_byte2 = &B0111_0110 End If ' 9400MHz/4700MHz 5875 If Pinb.3 = 0 And Pinb.4 = 0 Then Status = 4 AB_byte3 = &B0001_0110 AB_byte2 = &B1111_0011 End If If Status <> Status_alt Then Gosub Auf_leitung end 'Auskommentieren wenn der Proz nicht Ruhe geben soll waitms 1000 Loop End ' Unterprogramme '**************************************************************** ' Daten auf die Leitung zur Tonträger-PLL ADF4001 schicken * '**************************************************************** Auf_leitung: Status_alt = Status Reset ADF_le Shiftout ADF_dat ,ADF_clk , I_byte3 , 1 Shiftout ADF_dat ,ADF_clk , I_byte2 , 1 Shiftout ADF_dat ,ADF_clk , I_byte1 , 1 Gosub Sr_lesen Shiftout ADF_dat ,ADF_clk , R_byte3 , 1 Shiftout ADF_dat ,ADF_clk , R_byte2 , 1 Shiftout ADF_dat ,ADF_clk , R_byte1 , 1 Gosub Sr_lesen Shiftout ADF_dat ,ADF_clk , AB_byte3 , 1 Shiftout ADF_dat ,ADF_clk , AB_byte2 , 1 Shiftout ADF_dat ,ADF_clk , AB_byte1 , 1 Sr_lesen: Waitus 12 Set ADF_le Waitus 12 Reset ADF_le Return