Code:
$regfile = "m88def.dat" 'AT-Mega88 wichtig weil 6 x PWM!!!
$crystal = 8000000 'Quarz: 8 MHz intern
'$baud = 9600 'Baudrate der UART: 9600 Baud
'-------------------------------------------------------------------------------
'Ein- und Ausgänge
Config Portb = Output
Config Portd = Output
'-------------------------------------------------------------------------------
'Variablen
Dim Count As Integer
Dim Led_flag As Byte
Dim Zeile As Word , Position As Byte 'position evtl as word, falls die tabelle größer wird
Dim Z As Word
Dim T1 As Byte , T2 As Byte , T3 As Byte , T4 As Byte , T5 As Byte , T6 As Byte 'Sollwert
Dim Tt1 As Byte , Tt2 As Byte , Tt3 As Byte , Tt4 As Byte , Tt5 As Byte , Tt6 As Byte ' Hilfsregister
Dim Test As Word
Dim Pwmwert As Byte 'NEUE PWM
'-------------------------------------------------------------------------------
'Konfiguration LCD
'Config Lcd = 16 * 1 'LCD größe
Config Lcd = 16 * 2 'LCD größe
'Config Lcd = 16 * 4 'LCD größe
'Config Lcd = 20 * 2 'LCD größe
'Config Lcd = 20 * 4 'LCD größe
'Config Lcd = 40 * 4 'LCD größe
Config Lcdpin = Pin , Db4 = Portb.7 , Db5 = Portb.6 , Db6 = Portd.7 , Db7 = Portb.0 , Rs = Portd.2 , E = Portd.4
Cursor Off Noblink
'-------------------------------------------------------------------------------
'Timer0 = SOFTWARE - PWM (EX PWM 34Hz???)
Config Timer0 = Timer , Prescale = 1 'Teiler
Timer0 = 254
Enable Timer0
On Timer0 Pwm_prog 'timer einschalten
'Timer1 = Sekundentakt
Config Timer1 = Timer , Prescale = 1
Enable Timer1 'timer einschalten
Timer1 = 65000 'ca. 1 mal pro sek
On Timer1 Timer1_isr 'Unteprogramm aufrufen
Enable Interrupts 'interrupts einschalten
'-------------------------------------------------------------------------------
Do
If Led_flag = 1 Then
Reset Led_flag
Incr Zeile
If Zeile = 180 Then Zeile = 0 'Annahme: wenn die 14 Zeilen durch sind geht's von vorne los
Position = Zeile * 6
T1 = Lookup(position , Digitalsinus) 'Dies liest die Werte 0,3,6,9 .. aus der Tabelle
Incr Position
T2 = Lookup(position , Digitalsinus) 'Dies liest die Werte 1,4,7,10 .. aus der Tabelle
Incr Position
T3 = Lookup(position , Digitalsinus) 'Dies liest die Werte 2,5,8,11 .. aus der Tabelle
Incr Position
T4 = Lookup(position , Digitalsinus) 'Dies liest die Werte
Incr Position
T5 = Lookup(position , Digitalsinus) 'Dies liest die Werte
Incr Position
T6 = Lookup(position , Digitalsinus) 'Dies liest die Werte
End If
'PWM ÜBERGABE
'Incr Test
'If Test > 1000 Then
'Test = 0
'Gosub Lcd
'End If
Loop
'-------------------------------------------------------------------------------
Lcd:
Locate 1 , 1
Lcd "T1:" ; T1 ; "T3:" ; T3 ; "T5:" ; T5
Locate 2 , 1
Lcd "T2:" ; T2 ; "T4:" ; T4 ; "T6:" ; T6
Return
'-------------------------------------------------------------------------------
Pwm_prog: 'PWM Takt über Timer0
Timer0 = 254
'NEU----------------------------------------------------------------------------
If T1 > Pwmwert Then
Portd.6 = 1
Else
Portd.6 = 0
End If
'--
If T2 > Pwmwert Then
Portd.5 = 1
Else
Portd.5 = 0
End If
'--
If T3 > Pwmwert Then
Portb.1 = 1
Else
Portb.1 = 0
End If
'--
If T4 > Pwmwert Then
Portb.2 = 1
Else
Portb.2 = 0
End If
'--
If T5 > Pwmwert Then
Portb.3 = 1
Else
Portb.3 = 0
End If
'--
If T6 > Pwmwert Then
Portd.3 = 1
Else
Portd.3 = 0
End If
Incr Pwmwert
If Pwmwert > 255 Then Pwmwert = 0
Return
'-------------------------------------------------------------------------------
Timer1_isr:
Timer1 = 65000
'Print "t1: " ; t1 ; " t2: " ; t2 ; " t3: " ; t3
Incr Count
If Count > 5000 Then 'Geschwindigkeit mit der die Tabelle durchlaufen wird
Set Led_flag
Count = 0
End If
Return
'-------------------------------------------------------------------------------
Digitalsinus:
' T1, T2, T3 , T4, T5 , T6
Data 4 , 0 , 221 , 0 , 0 , 223 '1
Data 13 , 0 , 216 , 0 , 0 , 227
Data 22 , 0 , 211 , 0 , 0 , 231
Data 31 , 0 , 206 , 0 , 0 , 235
Data 40 , 0 , 201 , 0 , 0 , 238
Data 49 , 0 , 195 , 0 , 0 , 241
Data 57 , 0 , 190 , 0 , 0 , 244
Data 66 , 0 , 183 , 0 , 0 , 246
Data 75 , 0 , 177 , 0 , 0 , 248
Data 83 , 0 , 171 , 0 , 0 , 250 '10
Data 91 , 0 , 164 , 0 , 0 , 252
Data 100 , 0 , 157 , 0 , 0 , 253
Data 108 , 0 , 150 , 0 , 0 , 254
Data 116 , 0 , 143 , 0 , 0 , 255
Data 124 , 0 , 135 , 0 , 0 , 255
Data 131 , 0 , 128 , 0 , 0 , 255
Data 139 , 0 , 120 , 0 , 0 , 255
Data 146 , 0 , 112 , 0 , 0 , 254
Data 153 , 0 , 104 , 0 , 0 , 254
Data 160 , 0 , 96 , 0 , 0 , 253 '20
Data 167 , 0 , 87 , 0 , 0 , 251
Data 174 , 0 , 79 , 0 , 0 , 249
Data 180 , 0 , 70 , 0 , 0 , 247
Data 186 , 0 , 62 , 0 , 0 , 245
Data 192 , 0 , 53 , 0 , 0 , 243
Data 198 , 0 , 44 , 0 , 0 , 240
Data 204 , 0 , 35 , 0 , 0 , 236
Data 209 , 0 , 27 , 0 , 0 , 233
Data 214 , 0 , 18 , 0 , 0 , 229
Data 219 , 0 , 9 , 0 , 0 , 225 '30
Data 223 , 0 , 0 , 4 , 0 , 221
Data 227 , 0 , 0 , 13 , 0 , 216
Data 231 , 0 , 0 , 22 , 0 , 211
Data 235 , 0 , 0 , 31 , 0 , 206
Data 238 , 0 , 0 , 40 , 0 , 201
Data 241 , 0 , 0 , 49 , 0 , 195
Data 244 , 0 , 0 , 57 , 0 , 190
Data 246 , 0 , 0 , 66 , 0 , 183
Data 248 , 0 , 0 , 75 , 0 , 177
Data 250 , 0 , 0 , 83 , 0 , 171 '40
Data 252 , 0 , 0 , 91 , 0 , 164
Data 253 , 0 , 0 , 100 , 0 , 157
Data 254 , 0 , 0 , 108 , 0 , 150
Data 255 , 0 , 0 , 116 , 0 , 143
Data 255 , 0 , 0 , 124 , 0 , 135
Data 255 , 0 , 0 , 131 , 0 , 128
Data 255 , 0 , 0 , 139 , 0 , 120
Data 254 , 0 , 0 , 146 , 0 , 112
Data 254 , 0 , 0 , 153 , 0 , 104
Data 253 , 0 , 0 , 160 , 0 , 96 '50
Data 251 , 0 , 0 , 167 , 0 , 87
Data 249 , 0 , 0 , 174 , 0 , 79
Data 247 , 0 , 0 , 180 , 0 , 70
Data 245 , 0 , 0 , 186 , 0 , 62
Data 243 , 0 , 0 , 192 , 0 , 53
Data 240 , 0 , 0 , 198 , 0 , 44
Data 236 , 0 , 0 , 204 , 0 , 35
Data 233 , 0 , 0 , 209 , 0 , 27
Data 229 , 0 , 0 , 214 , 0 , 18
Data 225 , 0 , 0 , 219 , 0 , 9 '60
Data 221 , 0 , 0 , 223 , 4 , 0
Data 216 , 0 , 0 , 227 , 13 , 0
Data 211 , 0 , 0 , 231 , 22 , 0
Data 206 , 0 , 0 , 235 , 31 , 0
Data 201 , 0 , 0 , 238 , 40 , 0
Data 195 , 0 , 0 , 241 , 49 , 0
Data 190 , 0 , 0 , 244 , 57 , 0
Data 183 , 0 , 0 , 246 , 66 , 0
Data 177 , 0 , 0 , 248 , 75 , 0
Data 171 , 0 , 0 , 250 , 83 , 0 '70
Data 164 , 0 , 0 , 252 , 91 , 0
Data 157 , 0 , 0 , 253 , 100 , 0
Data 150 , 0 , 0 , 254 , 108 , 0
Data 143 , 0 , 0 , 255 , 116 , 0
Data 135 , 0 , 0 , 255 , 124 , 0
Data 128 , 0 , 0 , 255 , 131 , 0
Data 120 , 0 , 0 , 255 , 139 , 0
Data 112 , 0 , 0 , 254 , 146 , 0
Data 104 , 0 , 0 , 254 , 153 , 0
Data 96 , 0 , 0 , 253 , 160 , 0 '80
Data 87 , 0 , 0 , 251 , 167 , 0
Data 79 , 0 , 0 , 249 , 174 , 0
Data 70 , 0 , 0 , 247 , 180 , 0
Data 62 , 0 , 0 , 245 , 186 , 0
Data 53 , 0 , 0 , 243 , 192 , 0
Data 44 , 0 , 0 , 240 , 198 , 0
Data 35 , 0 , 0 , 236 , 204 , 0
Data 27 , 0 , 0 , 233 , 209 , 0
Data 18 , 0 , 0 , 229 , 214 , 0
Data 9 , 0 , 0 , 225 , 219 , 0 '90
Data 0 , 4 , 0 , 221 , 223 , 0
Data 0 , 13 , 0 , 216 , 227 , 0
Data 0 , 22 , 0 , 211 , 231 , 0
Data 0 , 31 , 0 , 206 , 235 , 0
Data 0 , 40 , 0 , 201 , 238 , 0
Data 0 , 49 , 0 , 195 , 241 , 0
Data 0 , 57 , 0 , 190 , 244 , 0
Data 0 , 66 , 0 , 183 , 246 , 0
Data 0 , 75 , 0 , 177 , 248 , 0
Data 0 , 83 , 0 , 171 , 250 , 0 '100
Data 0 , 91 , 0 , 164 , 252 , 0
Data 0 , 100 , 0 , 157 , 253 , 0
Data 0 , 108 , 0 , 150 , 254 , 0
Data 0 , 116 , 0 , 143 , 255 , 0
Data 0 , 124 , 0 , 135 , 255 , 0
Data 0 , 131 , 0 , 128 , 255 , 0
Data 0 , 139 , 0 , 120 , 255 , 0
Data 0 , 146 , 0 , 112 , 254 , 0
Data 0 , 153 , 0 , 104 , 254 , 0
Data 0 , 160 , 0 , 96 , 253 , 0 '110
Data 0 , 167 , 0 , 87 , 251 , 0
Data 0 , 174 , 0 , 79 , 249 , 0
Data 0 , 180 , 0 , 70 , 247 , 0
Data 0 , 186 , 0 , 62 , 245 , 0
Data 0 , 192 , 0 , 53 , 243 , 0
Data 0 , 198 , 0 , 44 , 240 , 0
Data 0 , 204 , 0 , 35 , 236 , 0
Data 0 , 209 , 0 , 27 , 233 , 0
Data 0 , 214 , 0 , 18 , 229 , 0
Data 0 , 219 , 0 , 9 , 225 , 0 '120
Data 0 , 223 , 4 , 0 , 221 , 0
Data 0 , 227 , 13 , 0 , 216 , 0
Data 0 , 231 , 22 , 0 , 211 , 0
Data 0 , 235 , 31 , 0 , 206 , 0
Data 0 , 238 , 40 , 0 , 201 , 0
Data 0 , 241 , 49 , 0 , 195 , 0
Data 0 , 244 , 57 , 0 , 190 , 0
Data 0 , 246 , 66 , 0 , 183 , 0
Data 0 , 248 , 75 , 0 , 177 , 0
Data 0 , 250 , 83 , 0 , 171 , 0 '130
Data 0 , 252 , 91 , 0 , 164 , 0
Data 0 , 253 , 100 , 0 , 157 , 0
Data 0 , 254 , 108 , 0 , 150 , 0
Data 0 , 255 , 116 , 0 , 143 , 0
Data 0 , 255 , 124 , 0 , 135 , 0
Data 0 , 255 , 131 , 0 , 128 , 0
Data 0 , 255 , 139 , 0 , 120 , 0
Data 0 , 254 , 146 , 0 , 112 , 0
Data 0 , 254 , 153 , 0 , 104 , 0
Data 0 , 253 , 160 , 0 , 96 , 0 '140
Data 0 , 251 , 167 , 0 , 87 , 0
Data 0 , 249 , 174 , 0 , 79 , 0
Data 0 , 247 , 180 , 0 , 70 , 0
Data 0 , 245 , 186 , 0 , 62 , 0
Data 0 , 243 , 192 , 0 , 53 , 0
Data 0 , 240 , 198 , 0 , 44 , 0
Data 0 , 236 , 204 , 0 , 35 , 0
Data 0 , 233 , 209 , 0 , 27 , 0
Data 0 , 229 , 214 , 0 , 18 , 0
Data 0 , 225 , 219 , 0 , 9 , 0 '150
Data 0 , 221 , 223 , 0 , 0 , 4
Data 0 , 216 , 227 , 0 , 0 , 13
Data 0 , 211 , 231 , 0 , 0 , 22
Data 0 , 206 , 235 , 0 , 0 , 31
Data 0 , 201 , 238 , 0 , 0 , 40
Data 0 , 195 , 241 , 0 , 0 , 49
Data 0 , 190 , 244 , 0 , 0 , 57
Data 0 , 183 , 246 , 0 , 0 , 66
Data 0 , 177 , 248 , 0 , 0 , 75
Data 0 , 171 , 250 , 0 , 0 , 83 '160
Data 0 , 164 , 252 , 0 , 0 , 91
Data 0 , 157 , 253 , 0 , 0 , 100
Data 0 , 150 , 254 , 0 , 0 , 108
Data 0 , 143 , 255 , 0 , 0 , 116
Data 0 , 135 , 255 , 0 , 0 , 124
Data 0 , 128 , 255 , 0 , 0 , 131
Data 0 , 120 , 255 , 0 , 0 , 139
Data 0 , 112 , 254 , 0 , 0 , 146
Data 0 , 104 , 254 , 0 , 0 , 153
Data 0 , 96 , 253 , 0 , 0 , 160 '170
Data 0 , 87 , 251 , 0 , 0 , 167
Data 0 , 79 , 249 , 0 , 0 , 174
Data 0 , 70 , 247 , 0 , 0 , 180
Data 0 , 62 , 245 , 0 , 0 , 186
Data 0 , 53 , 243 , 0 , 0 , 192
Data 0 , 44 , 240 , 0 , 0 , 198
Data 0 , 35 , 236 , 0 , 0 , 204
Data 0 , 27 , 233 , 0 , 0 , 209
Data 0 , 18 , 229 , 0 , 0 , 214
Data 0 , 9 , 225 , 0 , 0 , 219 '180
Lesezeichen