Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

solved the Error in BASCOM AVR : Variable can not be used with SET

Status
Not open for further replies.

Ravi Dutt

Newbie level 2
Joined
Aug 19, 2011
Messages
2
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Location
NEW DELHI
Activity points
1,291
Code:
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'                       G R T I
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'                          Fire Panel 4 Zone
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

$large
$baud = 19200
$crystal = 12000000
'***************************************************************************
'                      Trip all output ports  to zeros
'***************************************************************************
Reset P2.0
Reset P2.1
Reset P2.2
Reset P2.3
'Reset P3.0
'Reset P3.1
Reset P3.7

'***************************************************************************
'***************************************************************************
'                        Configure input & output ports
'***************************************************************************
'***************************************************************************

Chootr Alias P3.2                                           ' Common hooter
Cfire Alias P3.3                                            ' Common Fire Output
Cfault Alias P3.4                                           ' Common fault Output
Trsil Alias P3.5                                            ' Trouble Silence Input
Alsil Alias P3.6                                            ' Alarm Silence Input
Buz Alias P3.7                                              ' Buzzer Output
'***************************************************************************
'                       Inputs for Zones 1, 2 & 3
'***************************************************************************
F1 Alias P0.0                                               ' Zone-1 fire
O2 Alias P0.1                                               ' Zone-2 open
S1 Alias P0.2                                               ' Zone-1 short
S2 Alias P0.3                                               ' Zone-2 short
O1 Alias P0.4                                               ' Zone-1 open
F2 Alias P0.5                                               ' Zone-2 fire
F3 Alias P0.6                                               ' Zone-3 fire
S3 Alias P0.7                                               ' Zone-3 short
'***************************************************************************
'                       Outputs for hooters in Z1-4
'***************************************************************************
H1 Alias P2.0                                               ' Zone-1 hooter
H2 Alias P2.1                                               ' Zone-2 hooter
H3 Alias P2.2                                               ' Zone-3 hooter
H4 Alias P2.3                                               ' Zone-4 hooter
H5 Alias P1.6
H6 Alias P1.7
'***************************************************************************
'                       Inputs for Zones 3 & 4
'***************************************************************************
O4 Alias P2.4                                               ' Zone-4 open
F4 Alias P2.5                                               ' Zone-4 fire
O3 Alias P2.6                                               ' Zone-3 open
S4 Alias P2.7                                               ' Zone-4 short
'***************************************************************************
'                       Inputs for Zones 5 & 6
'***************************************************************************
F5 Alias P1.0
S5 Alias P1.1
O5 Alias P1.2
F6 Alias P1.3
S6 Alias P1.4
O6 Alias P1.5

'Open "com3.1:9600" For Output As #1

'***************************************************************************
'***************************************************************************
'                       System variable declaration
'***************************************************************************
'***************************************************************************

Dim Errorno As Byte
Dim I As Byte , Pnladdr As Byte , Msgstr As String * 4
Dim Fire1 As Bit , Fire2 As Bit , Fire3 As Bit , Fire4 As Bit , Fire5 As Bit , Fire6 As Bit
Dim Fault1 As Bit , Fault2 As Bit , Fault3 As Bit , Fault4 As Bit , Fault5 As Bit , Fault6 As Bit
Dim Firesil As Bit , Faultsil As Bit
Dim Sfault1 As Bit , Ofault1 As Bit , Sfault2 As Bit , Ofault2 As Bit
Dim Sfault3 As Bit , Ofault3 As Bit , Sfault4 As Bit , Ofault4 As Bit
Dim Sfault5 As Bit , Ofault5 As Bit , Sfault6 As Bit , Ofault6 As Bit

Dim Firesil1 As Bit , Firesil2 As Bit , Firesil3 As Bit , Firesil4 As Bit
Dim Firesil5 As Bit , Firesil6 As Bit

Dim Znstr As String * 2 , Temp As Byte
'***************************************************************************
'***************************************************************************
'                       System subroutine declarations
'***************************************************************************
'***************************************************************************
Declare Sub Fire_alarm()
Declare Sub Chck_port()
Declare Sub Z1()
Declare Sub Z2()
Declare Sub Z3()
Declare Sub Z4()
Declare Sub Z5()
Declare Sub Z6()
Declare Sub Disp()
Declare Sub Trsil()
'^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
'^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
'                          All variable initilization
'^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
'^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Pnladdr = 0
Fire1 = 1
Fire2 = 1
Fire3 = 1
Fire4 = 1
Fire5 = 1
Fire6 = 1
Fault1 = 1
Fault2 = 1
Fault3 = 1
Fault4 = 1
Fault5 = 1
Fault6 = 1
Firesil1 = 0
Firesil2 = 0
Firesil3 = 0
Firesil4 = 0
Firesil5 = 0
Firesil6 = 0
'***************************************************************************
'***************************************************************************
'                          System main program
'***************************************************************************
'***************************************************************************

   Do

      Call Chck_port
   Loop
   End
'***************************************************************************
'***************************************************************************
'                             System subroutines
'***************************************************************************
'***************************************************************************


'###########################################################################
'                             Zone 1 - 6 scanner
'###########################################################################
Sub Chck_port()
   Call Z1
   Waitms 200
   Call Z2
   Waitms 200
   Call Z3
   Waitms 200
   Call Z4
   Waitms 200
   Call Z5
   Waitms 200
   Call Z6
   Waitms 200
End Sub
'###########################################################################
'                          Alarm for Fire Z 1-6
'###########################################################################
Sub Fire_alarm()
   For I = 1 To 3
      Set Buz
      Waitms 100
      Reset Buz
      Waitms 100
   Next
End Sub

Sub Trsil()
   Waitms 200
   If Fire1 = 0 Or Fire2 = 0 Or Fire3 = 0 Or Fire3 = 0 Or Fire4 = 0 Or Fire5 = 0 Or Fire6 = 0 Then
   Else
      If Trsil = 0 Then
         Reset Trsil
         Reset Buz
      Else
         Set Buz
      End If
   End If

End Sub

'###########################################################################
'                           System LCD display routine
'###########################################################################
    Sub Disp()
       If Fire1 = 0 Or Fire2 = 0 Or Fire3 = 0 Or Fire3 = 0 Or Fire4 = 0 Or Fire5 = 0 Or Fire6 = 0 Then
            Set Cfire
       Else

            Reset Cfire
            Set Alsil
            Firesil1 = 0
            Firesil2 = 0
            Firesil3 = 0
            Firesil4 = 0
            Firesil5 = 0
            Firesil6 = 0
            Reset H1
            Reset H2
            Reset H3
            Reset H4
            Reset H5
            Reset H6
            Reset Chootr
            If Fault1 = 0 Or Fault2 = 0 Or Fault3 = 0 Or Fault4 = 0 Or Fault5 = 0 Or Fault6 = 0 Then
               Set Cfault
            Else
               Reset Cfault
               Set Trsil
               Reset Buz
            End If
       End If
    End Sub
'###########################################################################
'                       System check I/O & act
'###########################################################################

    '***********************************************************************
    '                          Zone-1  status monitor
    '***********************************************************************
        Sub Z1()
           Errorno = 1
           If F1 = 0 Then
               If Alsil = 0 And Fire1 <> 0 Then
                     Set Alsil
                  End If
                  Temp = Errorno
                  Temp = Temp + Pnladdr
                  Znstr = "0" + Str(temp)
                  Msgstr = "F" + Str(pnladdr)
                  Msgstr = Msgstr + Znstr
               Print Msgstr;
               If Fire1 = 1 Then
                  If Alsil = 1 And Firesil1 = 0 Then
                     Fire1 = 0
                     Set H1
                     Set Chootr
                     Call Fire_alarm
                  End If
               Else
                  If Alsil = 0 And Firesil1 = 0 Then
                     Reset Alsil
                     Reset H1
                     Reset Chootr
                     Firesil1 = 1
                  End If

                  If Firesil1 = 0 Then
                     Fire1 = 0
                     Set H1
                     Set Chootr
                     Call Fire_alarm
                  End If
               End If
           Else
            Fire1 = 1
            Firesil1 = 0
            Reset H1
            If S1 = 0 Then
               If Trsil = 0 And Sfault1 <> 0 Then
                  Set Trsil
               End If
               Fault1 = 0
               Sfault1 = 0
               Temp = Errorno
               Temp = Temp + Pnladdr
               Znstr = "0" + Str(temp)
               Msgstr = "S" + Str(pnladdr)
               Msgstr = Msgstr + Znstr
               Print Msgstr;
               If Sfault1 = 0 Then
                  Call Trsil
               End If
            Else
               Fault1 = 1
               Sfault1 = 1
               If O1 = 0 Then
                  If Trsil = 0 And Ofault1 <> 0 Then
                     Set Trsil
                  End If
                  Fault1 = 0
                  Ofault1 = 0
                  Temp = Errorno
                  Temp = Temp + Pnladdr
                  Znstr = "0" + Str(temp)
                  Msgstr = "O" + Str(pnladdr)
                  Msgstr = Msgstr + Znstr
                  Print Msgstr;
                  If Ofault1 = 0 Then
                     Call Trsil
                  End If
                  Call Disp
               Else
                  Fault1 = 1
                  Ofault1 = 1
               End If
            End If
           End If
           Call Disp
        End Sub
    '***********************************************************************
    '                          Zone-2  status monitor
    '***********************************************************************
       Sub Z2()
         Errorno = 2
           If F2 = 0 Then
               If Alsil = 0 And Fire2 <> 0 Then
                     Set Alsil
               End If
               Temp = Errorno
               Temp = Temp + Pnladdr
               Znstr = "0" + Str(temp)
               Msgstr = "F" + Str(pnladdr)
               Msgstr = Msgstr + Znstr
               Print Msgstr;
               If Fire2 = 1 Then
                  If Alsil = 1 And Firesil2 = 0 Then
                     Fire2 = 0
                     Set H2
                     Set Chootr
                     Call Fire_alarm
                  End If

               Else
                  If Alsil = 0 And Firesil2 = 0 Then
                     Reset Alsil
                     Reset H2
                     Reset Chootr
                     Firesil2 = 1
                  End If

                  If Firesil2 = 0 Then
                     Fire2 = 0
                     Set H2
                     Set Chootr
                     Call Fire_alarm
                  End If
               End If
           Else
            Fire2 = 1
            Firesil2 = 0
            Reset H2
            If S2 = 0 Then
               If Trsil = 0 And Sfault2 <> 0 Then
                  Set Trsil
               End If
               Fault2 = 0
               Sfault2 = 0
               Temp = Errorno
               Temp = Temp + Pnladdr
               Znstr = "0" + Str(temp)
               Msgstr = "S" + Str(pnladdr)
               Msgstr = Msgstr + Znstr
               Print Msgstr;
               If Sfault2 = 0 Then
                  Call Trsil
               End If
            Else
               Fault2 = 1
               Sfault2 = 1
               If O2 = 0 Then
                  If Trsil = 0 And Ofault2 <> 0 Then
                     Set Trsil
                  End If
                  Fault2 = 0
                  Ofault2 = 0
                  Temp = Errorno
                  Temp = Temp + Pnladdr
                  Znstr = "0" + Str(temp)
                  Msgstr = "O" + Str(pnladdr)
                  Msgstr = Msgstr + Znstr
                  Print Msgstr;
                  If Ofault2 = 0 Then
                     Call Trsil
                  End If
               Else
                  Fault2 = 1
                  Ofault2 = 1
                  Call Disp
               End If
            End If
           End If
           Call Disp
       End Sub

    '***********************************************************************
    '                          Zone-3 Alarm status monitor
    '***********************************************************************
       Sub Z3()
         Errorno = 3
         If F3 = 0 Then
            If Alsil = 0 And Fire3 <> 0 Then
                     Set Alsil
               End If
               Temp = Errorno
               Temp = Temp + Pnladdr
               Znstr = "0" + Str(temp)
               Msgstr = "F" + Str(pnladdr)
               Msgstr = Msgstr + Znstr
               Print Msgstr;
               If Fire3 = 1 Then
                  If Alsil = 1 And Firesil3 = 0 Then
                     Fire3 = 0
                     Set H3
                     Set Chootr
                     Call Fire_alarm
                  End If
               Else
                  If Alsil = 0 And Firesil3 = 0 Then
                     Reset Alsil
                     Reset H3
                     Reset Chootr
                     Firesil3 = 1
                  End If
                  If Firesil3 = 0 Then
                     Fire3 = 0
                     Set H3
                     Set Chootr
                     Call Fire_alarm
                  End If
               End If
         Else
            Fire3 = 1
            Firesil3 = 0
            Reset H3
            If S3 = 0 Then
               If Trsil = 0 And Sfault3 <> 0 Then
                  Set Trsil
               End If
               Fault3 = 0
               Sfault3 = 0
               Temp = Errorno
               Temp = Temp + Pnladdr
               Znstr = "0" + Str(temp)
               Msgstr = "S" + Str(pnladdr)
               Msgstr = Msgstr + Znstr
               Print Msgstr;
               If Sfault3 = 0 Then
                  Call Trsil
               End If
            Else
               Fault3 = 1
               Sfault3 = 1
               If O3 = 0 Then
                  If Trsil = 0 And Ofault3 <> 0 Then
                     Set Trsil
                  End If
                  Fault3 = 0
                  Ofault3 = 0
                  Temp = Errorno
                  Temp = Temp + Pnladdr
                  Znstr = "0" + Str(temp)
                  Msgstr = "O" + Str(pnladdr)
                  Msgstr = Msgstr + Znstr
                  Print Msgstr;
                  If Ofault3 = 0 Then
                     Call Trsil
                  End If
               Else
                  Fault3 = 1
                  Ofault3 = 1
                  Call Disp
               End If
            End If
           End If
           Call Disp
       End Sub

    '***********************************************************************
    '                          Zone-4 Alarm status monitor
    '***********************************************************************
       Sub Z4()
         Errorno = 4
         If F4 = 0 Then
            If Alsil = 0 And Fire4 <> 0 Then
                     Set Alsil
               End If
               Temp = Errorno
               Temp = Temp + Pnladdr
               Znstr = "0" + Str(temp)
               Msgstr = "F" + Str(pnladdr)
               Msgstr = Msgstr + Znstr
               Print Msgstr;
               If Fire4 = 1 Then
                  If Alsil = 1 And Firesil4 = 0 Then
                     Fire4 = 0
                     Set H4
                     Set Chootr
                     Call Fire_alarm
                  End If
               Else
                  If Alsil = 0 And Firesil4 = 0 Then
                     Reset Alsil
                     Reset H4
                     Reset Chootr
                     Firesil4 = 1
                  End If
                  If Firesil4 = 0 Then
                     Fire4 = 0
                     Set H4
                     Set Chootr
                     Call Fire_alarm
                  End If
               End If
         Else
            Fire4 = 1
            Firesil4 = 0
            Reset H4
            If S4 = 0 Then
               If Trsil = 0 And Sfault4 <> 0 Then
                  Set Trsil
               End If
               Fault4 = 0
               Sfault4 = 0
               Temp = Errorno
               Temp = Temp + Pnladdr
               Znstr = "0" + Str(temp)
               Msgstr = "S" + Str(pnladdr)
               Msgstr = Msgstr + Znstr
               Print Msgstr;
               If Sfault4 = 0 Then
                  Call Trsil
               End If
            Else
               Fault4 = 1
               Sfault4 = 1
               If O4 = 0 Then
                  If Trsil = 0 And Ofault4 <> 0 Then
                     Set Trsil
                  End If
                  Fault4 = 0
                  Ofault4 = 0
                  Temp = Errorno
                  Temp = Temp + Pnladdr
                  Znstr = "0" + Str(temp)
                  Msgstr = "O" + Str(pnladdr)
                  Msgstr = Msgstr + Znstr
                  Print Msgstr;
                  If Ofault4 = 0 Then
                     Call Trsil
                  End If
               Else
                  Fault4 = 1
                  Ofault4 = 1
                  Call Disp
               End If
            End If
           End If
           Call Disp
      End Sub
'***********************************************************************
    '                          Zone-5  status monitor
    '***********************************************************************
        Sub Z5()
           Errorno = 5
           If F5 = 0 Then
               If Alsil = 0 And Fire5 <> 0 Then
                     Set Alsil
                  End If
               Temp = Errorno
               Temp = Temp + Pnladdr
               Znstr = "0" + Str(temp)
               Msgstr = "F" + Str(pnladdr)
               Msgstr = Msgstr + Znstr
               Print Msgstr;
               If Fire5 = 1 Then
                  If Alsil = 1 And Firesil5 = 0 Then
                     Fire5 = 0
                     Set H5
                     Set Chootr
                     Call Fire_alarm
                  End If
               Else
                  If Alsil = 0 And Firesil5 = 0 Then
                     Reset Alsil
                     Reset H5
                     Reset Chootr
                     Firesil5 = 1
                  End If
                  If Firesil5 = 0 Then
                     Fire5 = 0
                     Set H5
                     Set Chootr
                     Call Fire_alarm
                  End If
               End If
           Else
            Fire5 = 1
            Firesil5 = 0
            Reset H5
            If S5 = 0 Then
               If Trsil = 0 And Sfault5 <> 0 Then
                  Set Trsil
               End If
               Fault5 = 0
               Sfault5 = 0
               Temp = Errorno
               Temp = Temp + Pnladdr
               Znstr = "0" + Str(temp)
               Msgstr = "S" + Str(pnladdr)
               Msgstr = Msgstr + Znstr
               Print Msgstr;
               If Sfault5 = 0 Then
                  Call Trsil
               End If
            Else
               Fault5 = 1
               Sfault5 = 1
               If O5 = 0 Then
                  If Trsil = 0 And Ofault5 <> 0 Then
                     Set Trsil
                  End If
                  Fault5 = 0
                  Ofault5 = 0
                  Temp = Errorno
                  Temp = Temp + Pnladdr
                  Znstr = "0" + Str(temp)
                  Msgstr = "O" + Str(pnladdr)
                  Msgstr = Msgstr + Znstr
                  Print Msgstr;
                  If Ofault5 = 0 Then
                     Call Trsil
                  End If
                  Call Disp
               Else
                  Fault5 = 1
                  Ofault5 = 1
               End If
            End If
           End If
           Call Disp
        End Sub
        '***********************************************************************
    '                          Zone-6  status monitor
    '***********************************************************************
        Sub Z6()
           Errorno = 6
           If F6 = 0 Then
               If Alsil = 0 And Fire6 <> 0 Then
                     Set Alsil
                  End If
               Temp = Errorno
               Temp = Temp + Pnladdr
               Znstr = "0" + Str(temp)
               Msgstr = "F" + Str(pnladdr)
               Msgstr = Msgstr + Znstr
               Print Msgstr;
               If Fire6 = 1 Then
                  If Alsil = 1 And Firesil6 = 0 Then
                     Fire6 = 0
                     Set H6
                     Set Chootr
                     Call Fire_alarm
                  End If
               Else
                  If Alsil = 0 And Firesil6 = 0 Then
                     Reset Alsil
                     Reset H6
                     Reset Chootr
                     Firesil6 = 1
                  End If

                  If Firesil6 = 0 Then
                     Fire6 = 0
                     Set H6
                     Set Chootr
                     Call Fire_alarm
                  End If
               End If
           Else
            Fire6 = 1
            Firesil6 = 0
            Reset H6
            If S6 = 0 Then
               If Trsil = 0 And Sfault6 <> 0 Then
                  Set Trsil
               End If
               Fault6 = 0
               Sfault6 = 0
               Temp = Errorno
               Temp = Temp + Pnladdr
               Znstr = "0" + Str(temp)
               Msgstr = "S" + Str(pnladdr)
               Msgstr = Msgstr + Znstr
               Print Msgstr;
               If Sfault6 = 0 Then
                  Call Trsil
               End If
            Else
               Fault6 = 1
               Sfault6 = 1
               If O6 = 0 Then
                  If Trsil = 0 And Ofault6 <> 0 Then
                     Set Trsil
                  End If
                  Fault6 = 0
                  Ofault6 = 0
                  Temp = Errorno
                  Temp = Temp + Pnladdr
                  Znstr = "0" + Str(temp)
                  Msgstr = "O" + Str(pnladdr)
                  Msgstr = Msgstr + Znstr
                  Print Msgstr;
                  If Ofault6 = 0 Then
                     Call Trsil
                  End If
                  Call Disp
               Else
                  Fault6 = 1
                  Ofault6 = 1
               End If
            End If
           End If
           Call Disp
        End Sub


'Close #1
 
Last edited by a moderator:

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top