-         
+ Antworten
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: SJA1000 - CAN - Bascomcode

  1. #1

    SJA1000 - CAN - Bascomcode

    Moin...

    Ich habe einen Atmega16 und den CAN-Controller SJA1000 von Philips folgendermaßen verbunden:

    ATMEGA SJA1000
    PORTA -------------------> Daten/Steuerbus AD1...7
    PORTD.7 -----------------> ALE
    PORTD.5 -----------------> RD
    PORTD.4 -----------------> WR
    CS -------> GND

    Die Resetpins der beiden chips sind via 10kohm auf +5V gelegt. Sonst ist nichts angeschlossen.

    Mit dem folgenden CODE kann ich nix zum SJA1000 schicken/lesen. Er nimmt nichts an. D.h. ich schreibe etwas in ein Register des SJA1000, jedoch kommt der Wert dort nie an. Woran kann es liegen? Ich verzweifel hier langsam...

    WUNDERT EUCH NICHT ÜBER DIE ART UNF WEISE DER PROGRAMMIERUNG, ICH HAB NUR ALLES MAL AUSPROBIERT.
    (meine vor allem so sachen, wie die parameterübergabe in canschreiben, ist so schwachsinn, ich weiß, aber wollte da fehler ausschließen)

    Code:
    Ale Alias Portd.7
    Rde Alias Portd.5
    Wr Alias Portd.4
    
    
    
    
    
    Dim Daten As Byte
    Dim Adresse As Byte
    Dim A As String * 3
    Dim Aus As Byte
    
    
    Declare Sub Can_schreiben
    Declare Sub Can_lesen
    Declare Sub Can_init
    Declare Sub Init
    Declare Sub Pause
    
    
    
    Do
    
    Input "(V0.09)Prompt> " , A
    
    
    Select Case A
       Case "L00"
          Adresse = 0
          Can_lesen
          Aus = Daten
          Print ">>" ; Aus
       Case "L01"
          Adresse = 1
          Can_lesen
          Aus = Daten
          Print ">>" ; Aus
       Case "L02"
          Adresse = 2
          Can_lesen
          Aus = Daten
          Print ">>" ; Aus
       Case "L03"
          Adresse = 3
          Can_lesen
          Aus = Daten
          Print ">>" ; Aus
       Case "L04"
          Adresse = 4
          Can_lesen
          Aus = Daten
          Print ">>" ; Aus
       Case "LST"
          Aus = Pina
          Print "PortA: " ; Aus
          Aus = Pinb
          Print "PortB: " ; Aus
          Aus = Pinc
          Print "PortC: " ; Aus
          Aus = Pind
          Print "PortD: " ; Aus
       Case "HGH"
          Init
          Portc = &HFF
          Porta = &HFF
          Print "ok"
       Case "LOW"
          Init
          Portc = &H00
          Porta = &H00
          Print "ok"
       Case "ini"
          Can_init
          Print "ok"
       Case "sta"
          Porta = &H00
          Portb = &H00
          Portc = &H00
          Portd = &H00
          Print "ok"
       Case "stc"
          Ale = 0
          Rde = 1
          Wr = 1
          Print "ok"
       Case Else
          Print "???"
    End Select
    
    
    Loop
    
    
    
    
    
    
    
    
    
    Sub Init
    'Statusports
    Config Portd = Output
    Config Porta = Output
    Config Portc = Output
    Porta = &H00
    Ale = 0
    Rde = 1
    Wr = 1
    End Sub Init()
    
    Sub Pause
    $asm
      nop
    $end Asm
    End Sub Pause()
    
    
    Sub Can_init()
    
       Daten = 1
       Adresse = 0
       Can_schreiben
       Pause
    
       Daten = 255
       Adresse = 4
       Can_schreiben
    
       Daten = 255
       Adresse = 5
       Can_schreiben
    
       Daten = 159
       Adresse = 6
       Can_schreiben
    
       Daten = 255
       Adresse = 7
       Can_schreiben
    
       Daten = 234
       Adresse = 8
       Can_schreiben
    
       Daten = 72
       Adresse = 3
       Can_schreiben
    
       'Daten = 0
       'Adresse = 0
       'Can_schreiben
    
       Pause
    End Sub
    
    Sub Can_schreiben
       Init
       Ale = 1
       Pause
       Porta = Adresse
       Pause
       Ale = 0
       Pause
       Porta = Daten
       Pause
       Wr = 0
       Wr = 1
       Porta = 0
    
    End Sub
    
    
    Sub Can_lesen
       Daten = 0
       Ale = 1
       Pause
       Porta = Adresse
       Pause
       Ale = 0
       Pause
       Config Porta = Input
       Pause
       Rde = 0
       Pause
       Daten = Pina
       Rde = 1
       Config Porta = Output
    End Sub
    BITTE HELFT MIR!!!!!!

    greetz
    Striebel[/code]

  2. #2
    Gast
    hi striebel
    hab mal durch die community geklickt.
    Suche eigentlich nen fotosensor der objekt chsn unterstützt.
    weisst du ob es sowas schon gibt ?

    dein problem ist warscheinlich das veränderte parameter??

  3. #3
    Gast
    Hmm, sorry, aber irgendwie weiß ich net so recht was du meinst. Könntest du das nochmal anders formulieren?

    greetz
    Striebel

  4. #4
    Gast
    du musst nur noch die ddr register manuell setzen
    also vor ale ddrx = &HFF
    dann adresse schreiben und ale wieder low
    dann ddrx auf eingang schalten ddrx=&H0
    dann rd/e auf low
    dann wert einlesen und an variable übergeben
    dann portx=&H0
    schon hast du deine daten

    gruß
    Norbert

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    01.06.2004
    Beiträge
    6
    Stribel..Erfolg gehabt? Ich kämpfe hier auch mit einem ATMEGA16 und einem SJA1000. Bisher ebenfalls erfolglos.

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    20.02.2005
    Ort
    Hessen
    Beiträge
    20

    SJA1000 - CAN - Bascomcode

    Hallo,

    hat euer Projekt funktioniert?
    Ich habe auch ein paar Versuche auch auf Basis SJA1000 unternommen und hatte bisher kin Erfolg.

    Tobias

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    20.02.2005
    Ort
    Hessen
    Beiträge
    20

    SJA1000 - CAN - Bascomcode

    Hallo,

    hat euer Projekt funktioniert?
    Ich habe auch ein paar Versuche auch auf Basis SJA1000 unternommen und hatte bisher kin Erfolg.

    Tobias

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.01.2006
    Ort
    Nidda
    Alter
    43
    Beiträge
    180

    Bei eines CAN Netzes

    Hallo Striebel,

    bin eu im Forum und auf deine(n) Beitäge aufmerksam geworden.
    Hast du schon eine CAN Vernetzung in Betrieb genommen?

    Ich bin schon durchs halbe Web gesurft. In Bascom habe ich allerdings noch nichts gefunden.

    Vielleicht hat ja jemand anders mehr Erfolg gehabt.
    Meine Kenntnisse in Bascom und AVR sind noch am Anfang aber ich habe mir da was vorgenommen was ich auch unbedingt umsetzen möchte.

    Kann mir hier jemand helfen?

    Elkokiller

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    04.06.2006
    Beiträge
    51

    SJA1000 und ATMega16 in Bascom

    Hallo
    Gottseidank ich bin nicht alleine. Ich kämpfe gerade mit dem Can-Bus. Ich wäre sehr dankbar für eine Programmroutine wie man den SJA1000 in Bascom anspricht.
    Grüße Manfred

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.01.2006
    Ort
    Nidda
    Alter
    43
    Beiträge
    180

    Nichts über SJA 1000 und Bascom

    Hallo Manfred,

    gib die Hoffnung nicht auf! Ich Suche jetzt schon fast ein Jahr nach einem Programm.
    Entweder ist keiner in der Lage so etwas zu schreiben oder es ist einfach nicht möglich.
    Ich befürchte den zweiten Fall da sonst recht schnell Hilfe kommt!

    Tobias

+ Antworten
Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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