-         

Ergebnis 1 bis 4 von 4

Thema: Enable Urxc macht fehler beim kompilieren

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    06.04.2008
    Beiträge
    18

    Enable Urxc macht fehler beim kompilieren

    Anzeige

    Hallo Leute,
    ich habe eine Kleines Programm auf einem Mega 128 unter Verwendung eines Bascom-Beispieles gemacht und es funktioniert.

    Jetzt möchte ich es auf einemAT90PWM3 zum laufen bekommen, doch schon der Kompiler macht mir einen Strich durch die Rechnung, da er
    "Enable URXC" als Fehler bemängelt..

    Ich habe im Datenblatt von Atmel und ich den Definitionsdateien von Bascom nachgeschaut - den Interrupt sollte es meiner Meinung nach genau so wie beim Mega128 geben .


    Code:
     '********** Configuration Settings **********
    $regfile = "at90pwm2_3.dat"                                 ' use AT90PWM3 definitions
    
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    
    $crystal = 16000000
    $baud = 19200
    On Urxc RS232
    Enable Urxc                                                 'handler seriale
    Enable Interrupts
    Open "com1:" For Binary As #1                               'Ausgabe über serielle Schnittstelle
    
    
    '############################################
    '####  Constanten  ###############################
    '############################################
    
    Const Ja = 1
    Const No = 0
    Const Vb6 = No
    Const Mode_pos = 0
    Const Mode_vel = 1
    Const Mode_trp = 2
    Const Mode_velp = 3
    Const Mode_idle = 4
    Const True = 1
    Const False = 0
    
    Const E_n_ramps = 1                                         ' E_N_RAMPS to init PSC 0 ramp number 4,2,1,0(centered) */
    Const E_overlapped = 1                                      '/* E_OVERLAPPED to test with overlapped values in one ramp mode */
    Const E_retrig_0 = 1                                        '/* E_RETRIG_0 to enable retrigger O input */
    
    '#############################################
    '####  Variablen ##################################
    '#############################################
    Dim Dead_time_0 As Integer
    Dim On_time_0 As Integer
    Dim Dead_time_1 As Integer
    Dim On_time_1 As Integer
    
    
    Dim Dummy As Byte
    Dim Tx_enable As Bit
    Dim Str_tx_1 As String * 20
    Dim Comando As String * 30
    Dim Comando_old As String * 30
    Dim Char(20) As Byte
    Dim Cmd_ar(5) As String * 10
    Dim N_cmd As Byte
    Dim M As Byte
    Dim I As Word
    Dim U As Word
    Dim O As Word
    
    
    Do
    
    
         If Tx_enable = 1 Then                                  'permetti la trasmissione
            Tx_enable = 0
            Print Str_tx_1                                      'trasmetti la stringa
         End If
    
    
    
    
    
    
    Loop
    
    
    Rs232:
        #if Vb6
            Input #2 Comando Noecho                             'se usato con vb6
        #else
          Char(1) = Inkey(#2)                                   'se usato con terminal
          Char(1) = Ucase(char(1))
          If Char(1) = Chr(13) Then
          'Print
        #endif
        '...........................................................................
             If Comando = "" Then Comando = Comando_old
             N_cmd = Split(comando , Cmd_ar(1) , " ")           'splittet den String in N_cmd - Teile ( erstes in Cmd_ar(1) )
             M = Val(cmd_ar(2))                                 'returns number of characters in String
             '......................................................................
             Select Case Cmd_ar(1)
                    Case "RSTF"
                         Print "(0 RST Program, 0)"
                         'Start Watchdog
                         '..........................................................
                    Case "MADE"
                         Print "(0 , 0)"
                         '..........................................................
                    Case "VER"
                         Print "(0 Ver 0.1 10.09.2009, 0)"
                         '..........................................................
                         '..........................................................
                    Case "Start"
                          Print " Start "
                         '..........................................................
                    Case "Stop"
                         Print " Stop "
                         '..........................................................
                    Case "VOLT?"
                         Tx_enable = 1
    
                         '..........................................................
                    Case "AMP!"
                         Tx_enable = 1
    
                         '..........................................................
                    Case "Rpppl!"                               'set PID parameter
    
                         Print "(" ")"
                         '..........................................................
                    Case "AMP?"                                 'get PID parameter
                         Print "(" ")"                          'get PID parameter
                         '..........................................................
                    Case "Rppl?"
    
                          Print "(" ")"
                         '..........................................................
                    Case "FRQ?"
                          Print "(" ")"
                         '..........................................................
                    Case "Mode"                                 'set zero position
                         Print "(" ")"
    
    
                    Case Else
                         '..........................................................
             End Select
             Comando_old = Comando
             Comando = ""
             '......................................................................
      #if Vb6
      #else
          Else
             Comando = Comando + Chr(char(1))                   ' zusammensetzen des Befehls im Terminal-Mode
             Print Comando ; Chr(13);
          End If
      #endif
    es gibt doch bestimmt die Möglichkeit ohne die Hochsprachenbefehle von Bascom den Interrupt URXC zu aktivieren oder ?

    vielen dank.
    olby2

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    46
    Beiträge
    765
    Ja, z.B. mit Inline Assembler.
    Die Befehlt aus dem Datenblatt einfach umgeben von "$asm" und "$end asm" ohne Häkchen eingeben.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    12.12.2004
    Ort
    Trier
    Beiträge
    38

    Re: Enable Urxc macht fehler beim kompilieren

    Zitat Zitat von olby2
    es gibt doch bestimmt die Möglichkeit ohne die Hochsprachenbefehle von Bascom den Interrupt URXC zu aktivieren oder ?
    Aber wozu denn? Bit-weiser Zugriff auf Register ist auch von Bascom aus möglich. In deinem Fall wäre das

    set ucsrb.rxcie

    Der Kompiler macht dann daraus:
    ...
    LDS R24,0x00C1
    ORI R24,0x80
    STS 0x00C1,R24
    ...

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    06.04.2008
    Beiträge
    18

    Re: Enable Urxc macht fehler beim kompilieren

    Zitat Zitat von screwdriver
    Zitat Zitat von olby2
    es gibt doch bestimmt die Möglichkeit ohne die Hochsprachenbefehle von Bascom den Interrupt URXC zu aktivieren oder ?
    Aber wozu denn? Bit-weiser Zugriff auf Register ist auch von Bascom aus möglich. In deinem Fall wäre das

    set ucsrb.rxcie

    Der Kompiler macht dann daraus:
    ...
    LDS R24,0x00C1
    ORI R24,0x80
    STS 0x00C1,R24
    ...

    vielen dank für den Tipp, werde es gleich mal ausprobieren

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •