2014年6月17日 星期二

Debounce & Select Case


$regfile = "attiny13.dat"
$crystal = 1200000
$hwstack = 8
$swstack = 4
$framesize = 4
Dim A As Byte
Dim I As Byte
Config Portb = &B01111

Led1 Alias Portb.0
Led2 Alias Portb.1
Led3 Alias Portb.2
Led4 Alias Portb.3
Switch_on Alias Pinb.4

Pinb.4 = 1                                                  'PullUp
A = 0

Do
Debounce Switch_on , 0 , LABEL_01 , Sub
Select Case A

Case 0:
Led1 = 0
Led2 = 1
Led3 = 1
Led4 = 1

Case 1:
Led1 = 1
Led2 = 0
Led3 = 1
Led4 = 1


Case 2:
Led1 = 1
Led2 = 1
Led3 = 0
Led4 = 1


Case 3:
Led1 = 1
Led2 = 1
Led3 = 1
Led4 = 0

End Select

Loop

End


Label_01:
   A = A + 1
   If A = 4 Then A = 0
Return

LED Brightness using PWM


$regfile = "attiny13a.dat"
$crystal = 1000000
$hwstack = 8
$swstack = 4
$framesize = 4

Dim I As Byte
Dim D As Byte


Config Portb.0 = Output
Config Timer0 = Pwm , Prescale = 1 , Compare A Pwm = Clear Down


Do

 Restore Dta0

  For I = 1 To 16
     Read D
     Pwm0a = D
     Waitms 50
  Next I

Loop

End


Dta0:
Data 255, 250, 245, 230,215,195,150,100, 40
Data 100, 150, 195, 215, 230, 245, 250