Moderators: stojke369, pedja089, trax
' Hardware Pwm Abstimmung für das Pollin Tunermodul
$regfile = "m32def.dat"
$crystal = 1000000
Dim A As Integer 'Tuningvariable
Dlen Alias Portc.0 'Dlen Leitung = Portc.0 'Anschluss 13
Dat Alias Portc.1 'Data Leitung = Portc.1 'Anschluss 12
Clb Alias Portd.7 'Clock Leitung = Portd.7 'Anschluss 14
Config Dat = Output 'Data Leitung als Ausgang
Config Pind.3 = Input 'Taster vorheriger Sender
Config Pind.4 = Input 'Taster Nächster Sender
Config Pind.2 = Input 'Anschluss für das Stoppsignal
Config Portd.6 = Output 'Led zeigt laufendes Tuning an
Config Portd.1 = Output 'Muting
'Programm starten
Waitms 100 'MC hochfahren lassen
Dat = 0 'Anführende Null
Dlen = 0
Clb = 0
'Saa1057 initalisieren
Dlen = 1 'Datenübertragung beginnen
Gosub Uebertragen 'Bit übernehmen
Dat = 1 'Latch B auswählen
Gosub Uebertragen
Dat = 1 'Fm Bit: Fm Modus auswählen
Gosub Uebertragen
Dat = 1 'REFH: Zweites Bit Abstimmschritte 12,5khz auswählen
Gosub Uebertragen
'Current Amplifier programmieren (0,07 mV)
Dat = 1 'Cp 3:=0
Gosub Uebertragen
Dat = 1 'Cp 2:=0
Gosub Uebertragen
Dat = 1 'Cp 1:=0
Gosub Uebertragen
Dat = 0 'Cp 0:=1
Gosub Uebertragen
'Currentamplifier programmieren Ende
Dat = 0 'SB2: Letzten 8 Bits (werden nich benötigt) automatisch auf 0 setzen
Gosub Uebertragen
Dlen = 0 'Datenübertragung beenden
Clb = 0
Waitus 20
Dat = 0 'Führende Null
'Saa1057 initalisieren Ende
Waitus 20
'Beginn des Tuningparts
Dlen = 1 'Datenübertragung beginnen
Gosub Uebertragen 'Null übernehmen
Dat = 0 'Latch A auswählen
Gosub Uebertragen
'Teilerwert für Startfrequenz in Binärform übertragen ()
Dlen = 1
A = 8120 'Teilerwert für 90,8 Mhz
Shiftout , Dat , Clb , A 'Teilerwert auf Dat ausgeben
Portd.1 = 1 'Audio muting aus
Waitus 20
'Hauptschleife des Programmes
Do
'Tuninghoch
Portd.6 = 0
If Pind.3 = 1 Then 'wenn Pind.3 gedrückt und losgelassen
Portd.6 = 1 'Led an
Portd.1 = 0 'Muting an
Do
If A < 8460 Then 'Begrenzung nach oben
A = A + 8
Dat = 0 'Leading Zero
Dlen = 1 'Datenübertragung beginnen
Gosub Uebertragen
Dat = 0 'Latch A auswählen
Gosub Uebertragen
Shiftout , Dat , Clb , A 'Teilerwert als Binärzahl auf Dat ausgeben
Dlen = 0 'Datenübertragung beenden
Loop Until Pind.2 = 0 Or Pind.4 = 1
End If
Portd.6 = 0 'Led aus
Portd.1 = 1 'Muting aus
End If
'Tuningrunter
If Pind.4 = 1 Then
'...
Portd.6 = 1 'Led an
Portd.1 = 0 'Muting an
Do
If A > 7000 Then 'Begrenzung nach unten
A = A - 8
Dat = 0 'Leading Zero
Dlen = 1 'Datenübertragung beginnen
Gosub Uebertragen
Dat = 0 '...A
Gosub Uebertragen
Shiftout , Dat , Clb , A
Dlen = 0 'Datenübertragung beenden
Loop Until Pind.2 = 0 Or Pind.3 = 1
End If
Portd.6 = 0 'Led aus
Portd.1 = 1 'Muting aus
End If
Loop
Uebertragen: 'Routine um Data an den Saa zu übertragen
Waitus 15 'Warten
Clb = 0
Waitus 15 '""
Clb = 1
Waitus 15 '""
Clb = 0
Waitus 15 '""
Return
End
' Hardware Pwm Abstimmung für das Pollin Tunermodul
$regfile = "m32def.dat"
$crystal = 1000000
Dim A As Integer 'Tuningvariable
Dlen Alias Portc.0 'Dlen Leitung = Portc.0 'Anschluss 13
Dat Alias Portc.1 'Data Leitung = Portc.1 'Anschluss 12
Clb Alias Portd.7 'Clock Leitung = Portd.7 'Anschluss 14
Config Dat = Output 'Data Leitung als Ausgang
Config Pind.3 = Input 'Taster vorheriger Sender
Config Pind.4 = Input 'Taster Nächster Sender
Config Pind.2 = Input 'Anschluss für das Stoppsignal
Config Portd.6 = Output 'Led zeigt laufendes Tuning an
Config Portd.1 = Output 'Muting
'Programm starten
Waitms 100 'MC hochfahren lassen
Dat = 0 'Anführende Null
Dlen = 0
Clb = 0
'Saa1057 initalisieren
Dlen = 1 'Datenübertragung beginnen
Gosub Uebertragen 'Bit übernehmen
Dat = 1 'Latch B auswählen
Gosub Uebertragen
Dat = 1 'Fm Bit: Fm Modus auswählen
Gosub Uebertragen
Dat = 1 'REFH: Zweites Bit Abstimmschritte 12,5khz auswählen
Gosub Uebertragen
'Current Amplifier programmieren (0,07 mV)
Dat = 1 'Cp 3:=0
Gosub Uebertragen
Dat = 1 'Cp 2:=0
Gosub Uebertragen
Dat = 1 'Cp 1:=0
Gosub Uebertragen
Dat = 0 'Cp 0:=1
Gosub Uebertragen
'Currentamplifier programmieren Ende
Dat = 0 'SB2: Letzten 8 Bits (werden nich benötigt) automatisch auf 0 setzen
Gosub Uebertragen
Dlen = 0 'Datenübertragung beenden
Clb = 0
Waitus 20
Dat = 0 'Führende Null
'Saa1057 initalisieren Ende
Waitus 20
'Beginn des Tuningparts
Dlen = 1 'Datenübertragung beginnen
Gosub Uebertragen 'Null übernehmen
Dat = 0 'Latch A auswählen
Gosub Uebertragen
'Teilerwert für Startfrequenz in Binärform übertragen ()
Dlen = 1
A = 8120 'Teilerwert für 90,8 Mhz
Shiftout , Dat , Clb , A 'Teilerwert auf Dat ausgeben
Portd.1 = 1 'Audio muting aus
Waitus 20
'Hauptschleife des Programmes
Do
'Tuninghoch
Portd.6 = 0
If Pind.3 = 1 Then 'wenn Pind.3 gedrückt und losgelassen
Portd.6 = 1 'Led an
Portd.1 = 0 'Muting an
Do
If A < 8460 Then 'Begrenzung nach oben
A = A + 8
Dat = 0 'Leading Zero
Dlen = 1 'Datenübertragung beginnen
Gosub Uebertragen
Dat = 0 'Latch A auswählen
Gosub Uebertragen
Shiftout , Dat , Clb , A 'Teilerwert als Binärzahl auf Dat ausgeben
Dlen = 0 'Datenübertragung beenden
Loop Until Pind.2 = 0 Or Pind.4 = 1
End If
Portd.6 = 0 'Led aus
Portd.1 = 1 'Muting aus
End If
'Tuningrunter
If Pind.4 = 1 Then
'...
Portd.6 = 1 'Led an
Portd.1 = 0 'Muting an
Do
If A > 7000 Then 'Begrenzung nach unten
A = A - 8
Dat = 0 'Leading Zero
Dlen = 1 'Datenübertragung beginnen
Gosub Uebertragen
Dat = 0 '...A
Gosub Uebertragen
Shiftout , Dat , Clb , A
Dlen = 0 'Datenübertragung beenden
Loop Until Pind.2 = 0 Or Pind.3 = 1
End If
Portd.6 = 0 'Led aus
Portd.1 = 1 'Muting aus
End If
Gosub Moja_display_rutina
Loop
End
Uebertragen: 'Routine um Data an den Saa zu übertragen
Waitus 15 'Warten
Clb = 0
Waitus 15 '""
Clb = 1
Waitus 15 '""
Clb = 0
Waitus 15 '""
Return
Moja_display_rutina:
'ovdje piši svoj program
Return
' Hardware Pwm Abstimmung für das Pollin Tunermodul
'$regfile = "m8def.dat"
$regfile = "m32def.dat"
$crystal = 1000000
Dim A As Integer 'Tuningvariable
Dlen Alias Portc.0 'Dlen Line = Portc.0 'Port 13
Dat Alias Portc.1 'Data Line = Portc.1 'Port 12
Clb Alias Portd.7 'Clock Line = Portd.7 'Port 14
Config Dat = Output 'Data Line as Output
Config Pind.3 = Input 'Taster vorheriger Sender [ UP ]
Config Pind.4 = Input 'Taster Next Sender [ DOWN ]
Config Pind.2 = Input 'Port für das Stoppsignal [ STOP ]
Config Portd.6 = Output 'Led shows current Tuning an
Config Portd.1 = Output 'Muting
'Programm starten
Waitms 100 'MC start up lassen
Dat = 0 'Directing Null
Dlen = 0
Clb = 0
'Saa1057 initalisieren
Dlen = 1 'Data transfer beginnen
Gosub Transfered 'Bit übernehmen [Transfered]
Dat = 1 'Latch B single out
Gosub Transfered
Dat = 0 'Fm Bit: Fm Modus single out
Gosub Transfered
Dat = 0 'REFH: Second bit tuning 1khz single out
Gosub Transfered
'Current Amplifier programmieren (0,07 mV)
Dat = 1 'Cp 3:=0
Gosub Transfered
Dat = 1 'Cp 2:=0
Gosub Transfered
Dat = 1 'Cp 1:=0
Gosub Transfered
Dat = 0 'Cp 0:=1
Gosub Transfered
'Currentamplifier programmieren Ende
Dat = 0 'SB2: Last 8 bits (will nich needed) automatically set to 0
Gosub Transfered
Dlen = 0 'Data transfer finish
Clb = 0
Waitus 20
Dat = 0 'Leading zero
'Saa1057 initalisieren Ende
Waitus 20
'Beginn des Tuningparts
Dlen = 1 'Data transfer beginnen
Gosub Transfered 'Assume zero
Dat = 0 'Latch A single out
Gosub Transfered
'Divider value for start frequency transmitted in binary form ()
Dlen = 1
'A = 8120
A = 6500 'Divider value for Mhz
Shiftout , Dat , Clb , A 'Divider value on Dat emit
Portd.1 = 1 'Audio muting aus
Gosub Moja_display_rutina
Waitus 20
'Main loop des Programmes
Do
'Tuning up
Portd.6 = 0
If Pind.3 = 0 Then 'wenn Pind.3 pressed and released
Portd.6 = 1 'Led an
Portd.1 = 0 'Muting an
Do
If A < 7200 Then 'limit up
A = A + 1
Dat = 0 'Leading Zero
Dlen = 1 'Data transfer beginnen
Gosub Transfered
Dat = 0 'Latch A single out
Gosub Transfered
Shiftout , Dat , Clb , A 'Divider value as binary output to Dat
Dlen = 0 'Data transfer finish
Loop Until Pind.2 = 0 Or Pind.4 = 1
End If
Portd.6 = 0 'Led aus
Portd.1 = 1 'Muting aus
End If
Gosub Moja_display_rutina
'Tuning down
If Pind.4 = 1 Then
'...
Portd.6 = 1 'Led an
Portd.1 = 0 'Muting an
Do '
If A > 6000 Then 'Limit down
A = A - 1
Dat = 0 'Leading Zero
Dlen = 1 'Data transfer beginnen
Gosub Transfered
Dat = 0 '...A
Gosub Transfered
Shiftout , Dat , Clb , A
Dlen = 0 'Data transfer finish
Loop Until Pind.2 = 0 Or Pind.3 = 1
End If
Portd.6 = 0 'Led aus
Portd.1 = 1 'Muting aus
End If
Gosub Moja_display_rutina
Loop
End
Transfered: 'Routine Data to be transferred to the Saa
Waitus 15 'Wait
Clb = 0
Waitus 15 '""
Clb = 1
Waitus 15 '""
Clb = 0
Waitus 15 '""
Return
Moja_display_rutina:
Cls
Lcd A
Return
pedja089 wrote:Zasto ne probate napraviti nesto kao sto sam ja napisao za pic basic![]()
Nije da se hvalim, ali mnogi su prosli i vise su nego zadovoljni.
Return to Mikrokontroleri - AVR
Users browsing this forum: No registered users and 1 guest