' ATtiny 2313 Bas ' _________ ' / | ' (Reset/dW) PA2 o| 1 20 |o VCC ' Altern PD0 o| 2 19 |o PB7 (UCSK/SCL/PCINT7) ' Position 1 PD1 o| 3 18 |o PB6 (MISO/DO/PCINT6) ' (XTAL2) PA1 o| 4 17 |o PB5 (MOSI/DI/SDA/PCINT5) ' (XTAL1) PA2 o| 5 16 |o PB4 (OC1B/PCINT4) ' Position 2 PD2 o| 6 15 |o PB3 (OC1A/PCINT3) ' PD3 o| 7 14 |o PB2 (OC0A/PCINT2) Motor 2 ' Schleife PD4 o| 8 13 |o PB1 (AIN1/PCINT1) Motor 1 ' PD5 o| 9 12 |o PB0 (AIN0/PCINT0) LED 1 ' GND o| 10 11 |o PD6 (ICP) ' |__________| ' Wischer N°9 vom Eric-B $regfile = "2313def.dat" $crystal = 4000000 ' unkritisch $hwstack = 40 $swstack = 16 $framesize = 32 Declare Sub Motorstop() '\ Declare Sub Motorslow() ' | Sub Deklaration Declare Sub Motorfast() '/ '*********************** ' Konstanten '*********************** Const Ein = 0 ' Einschalten auf 0 Const Aus = 1 ' Auschalten auf 1 Const Syswait = 5 ' ms Const Altwait = 2000 ' 2 sec Dim Altcount As Integer '******************************* ' Ausgaenge Configuration '******************************* AlterLED Alias Portb.0 ' LED fĂĽr Alternance kontroll Mot_lang Alias Portb.1 ' Motor Ausgänge Mot_schn Alias Portb.2 Config Portb.0 = Output '\ Config Portb.1 = Output ' | Motor Steueurung Config Portb.2 = Output '/ Portb = &HFF ' Alle Port ausschalten '***************************** ' Eingänge Configuration '***************************** SwitchAlt Alias Pind.0 ' Position 1 - Wechsel SwitchSlow Alias Pind.1 ' Position 2 - Langsam SwitchFast Alias Pind.2 ' Position 3 - Schnell WiperHome Alias Pind.4 ' Schleifer auf 0 Config Pind.0 = Input Config Pind.1 = Input Config Pind.2 = Input Config Pind.4 = Input Portd.0 = 1 ' Pull Up Portd.1 = 1 ' Pull Up Portd.2 = 1 ' Pull Up Portd.4 = 1 ' Pull Up AltCount = 0 Do Waitms SYSWAIT If Switchalt = Ein Then Alterled = Ein ' In Alt modus -> LED an If Wiperhome = Ein Then If Altcount = 0 Then ' Runterzaehlen fertig -> start naechste Rund Gosub MotorSlow Else ' Motor anhalten und runterzaehlen Gosub MotorStop AltCount = AltCount - SYSWAIT End If Else ' Zaehler zuruecksetzen (200 x 10ms = 2sec) Altcount = Altwait End If Else ' Nicht in Alt modus -> LED aus Alterled = Aus If SwitchSlow = Ein Then Gosub MotorSlow Elseif SwitchFast = Ein Then Gosub MotorFast Elseif Wiperhome = Ein Then ' Ausschalten sobalt Wischer zuhause ist Gosub Motorstop Else ' Nix zu tun hier End If End If Loop Sub MotorStop() Mot_schn = Aus Mot_lang = Aus End Sub Sub MotorSlow() Mot_lang = Ein Mot_schn = Aus End Sub Sub MotorFast() Mot_lang = Aus Mot_schn = Ein End Sub