- fchao-Sinus-Wechselrichter AliExpress         
Seite 4 von 4 ErsteErste ... 234
Ergebnis 31 bis 39 von 39

Thema: I2C Einstieg

  1. #31
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    55
    Beiträge
    1.258
    Anzeige

    E-Bike
    Code:
    Config Pind.6 = Input 
    Pind.6 = 1
    um den Pullup einzuschalten, muss das Portregister gesetzt werden.

    Gruß, Michael

  2. #32
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.05.2012
    Beiträge
    511
    Hast du eine LED dran, mit der du die verschiedenen Programmphasen sichtbar machen kannst? Die LED sukkzessive immer später im Programmablauf einschalten.Vielleicht bleibt der Controller in einer der Funktionen stecken.

    Wie ist der Reset realisiert? Über den Programmer, oder über das Spannung einschalten? Gibt es da unterschiedliches Verhalten? Die Initialisierung nach dem Reset kann (zumindest bei PICs) je nach Resetursache (PowerUp, BrownOut, WatchDog, Sleep) durchaus unterschiedlich sein.
    Für die Led habe ich ja den Summer ...

    Vielleicht bleibt der Controller in einer der Funktionen stecken.
    Das sage ich ja: und zar nach dem zweiten mal anschalten direkt am Anfang. Oder ??

    Wie ist der Reset realisiert?
    Beim Proggen macht das der Progger selbst. Wenn ich es im Verlauf ändern möchte, habe ich dafür einen Taster.

    Nur mal zur Info : Ich verwende RN-Control, also müsste Hardwaremäßig alles passen. Ich habe auch ein anders Board mit Mega 32 probiert, doch es hat sich genau so verhalten. Das würde dann ja auch für ein anders Problem sprechen. Es liegt bestimmt an der Software, nur was ist die Frage ???

    um den Pullup einzuschalten, muss das Portregister gesetzt werden.
    Wie ??

    Ich hoffe einer von euch findet die Lösung ...

  3. #33
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.05.2012
    Beiträge
    511
    Also, ich konnte mir nun ein wenig selbst weiterhelfen (nach längerem testen...)

    Zur Info noch mal ich verwende RN-Control, USB-AVR-Progger von Robotikhardware und ftdi Board für seriell 5V-Pegel

    Das ist der Code:
    Code:
    $regfile = "m32def.dat"
    $crystal = 16000000
    $baud = 9600
    $hwstack = 200
    $swstack = 200
    $framesize = 400
    
    Config Portd.7 = Output
    
    
    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    Start Adc
    Waitms 10
    
    'TWI konfigurieren
    Config Sda = Portc.1
    Config Scl = Portc.0
    Config Twi = 100000
    
    Dim X As Byte
    Dim A As Byte
    Dim B As Byte
    Dim Lesen As Byte
    
    Dim W As Word
    
    Dim Inpu As Byte
    
    
    Sound Portd.7 , 400 , 450
    Sound Portd.7 , 400 , 250
    Sound Portd.7 , 400 , 450
    Wait 2
    
    I2cinit
    Waitms 10
    
    
    
    Input "1 = schreiben und 0 = lesen" , Inpu
    
    Select Case Inpu
    
    Case 1
    '---- schreibe in EEprom ----
      For A = 1 To 10
    
        W = Getadc(6)                                           'Messwert
        Print W
        X = W / 4                                               'damit der Speicher reicht
        Print "Durch 4 geteilt: " ; X
        Waitms 200
    
        I2cstart                                                'Start I2C
        I2cwbyte &HA0                                           'Sende Slave Adresse
        I2cwbyte A                                              'Sende Speicheradresse
        I2cwbyte X                                              'Sende Wert
        I2cstop                                                 'Stop I2C
        Waitms 10                                               'warte 10ms
    
        Print "ins EEprom = " ; X ; "  "                        ' Ausgabe der geschriebenen Werte
        Print
        Print
    
        Waitms 500
      Next A
    
      Sound Portd.7 , 400 , 450                                 'damit ich weiß, wann er fertig ist
      Waitms 40
      Sound Portd.7 , 400 , 450
    
    
    
    Case 0
    
    '--- lesen vom EEprom ----
      For B = 1 To 10
    
        I2cstart                                                'Start I2C
        I2cwbyte &HA0                                           'sende Slave Adresse
        I2cwbyte B                                              'sende Speicheradresse
    
        I2cstart                                                'Start I2C
        I2cwbyte &HA1                                           'sende Slave Adresse +1 für Lesen
        I2crbyte Lesen , Nack                                   'lese Adresse vom EEprom
        I2cstop                                                 'Stop I2C
    
        Print "Lese  EEprom= " ; Lesen ; "  "                   'Ausgabe der EEprom Werte
        Waitms 500
        Sound Portd.7 , 400 , 450                               'damit ich weiß, wann er fertig ist
        Waitms 40
        Sound Portd.7 , 400 , 450
    
      Next B
    
    
    End Select
    
    
    End
    Und jetzt haltet euch gut fest ! Der Code (leicht verändert) funktioniert auch, aber was anderes ist ganz komisch:

    Als ich es jetzt getestet hatte habe ich erst das Programm geproggt, seriell angesteckt, lesen oder schreiben gedrückt, den M32 machen lassen, dann ausgeschaltet, seriell abgesteckt, wieder angesteckt, wieder angeschaltet, und wieder einen Taster gedrückt.............

    So hat der Code funktioniert. Wenn ich aber den seriellen Anschluss dran lasse und dann direkt wieder anschaltet funktioniert gar nichts mehr. ????

    Meine Vermutung (die hört sich ein wenig blöde an): Es muss irgendwie die Leitung beim seriellen Kram "verstopft" sein oder irgend sowas ?????

  4. #34
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Zitat Zitat von Der Einsteiger Beitrag anzeigen
    Code:
    Config Pind.6 = Input
    Pind.6 = 1
    Michael meint, daß, um den Pullup einzuschalten, es Portd.6 = 1 heißen müsste.

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  5. #35
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.05.2012
    Beiträge
    511
    Danke, aber trotzdem gibt es diese komische Störung

  6. #36
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    29.05.2005
    Beiträge
    1.018
    Hallo Einsteiger,

    unter http://avrhelp.mcselec.com/ (bei "Newbie problems") habe ich noch folgendes gefunden:

    Some bits on Port C are not working


    Some chips have a JTAG interface. Disable it with the proper fuse bit . Or use DISABLE JTAG in your code.


    Leider weiss ich nicht welcher AVR hinter deiner "m32def.dat"-Angabe steckt. Somit weiss ich auch nicht, ob da überhaupt ein JTAG vorhanden ist.

    Gruß Sternthaler
    Lieber Asuro programieren als arbeiten gehen.

  7. #37
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    55
    Beiträge
    1.258
    Als ich es jetzt getestet hatte habe ich erst das Programm geproggt, seriell angesteckt, lesen oder schreiben gedrückt, den M32 machen lassen, dann ausgeschaltet, seriell abgesteckt, wieder angesteckt, wieder angeschaltet, und wieder einen Taster gedrückt.............
    nur hast du keinen Taster im Programm berücksichtigt, den man drücken könnte.
    Hier wäre es nur folgerichtig, wenn du erstmal deinen Taster überprüfst, eine systematische Arbeitsweise führt bei mir immer zum Erfolg.
    Dein letztes Programm krankte ja an der falschen Tasterabfrage (Ergebnis immer Null), jetzt muss es die serielle sein.
    Kannst du erläutern, warum?

    @Sternthaler:
    Nichts für ungut, du schreibst selbst, dass Bascom nicht dein Gebiet ist und weisst auch nicht was hinter m32 stecken könnte, warum antwortest du dann?

    Gruß, Michael

  8. #38
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.05.2012
    Beiträge
    511
    Some bits on Port C are not working

    Some chips have a JTAG interface. Disable it with the proper fuse bit . Or use DISABLE JTAG in your code.
    Vielen Dank für den Hinweis, aber das war mir schon bekannt.

    Leider weiss ich nicht welcher AVR hinter deiner "m32def.dat"-Angabe steckt. Somit weiss ich auch nicht, ob da überhaupt ein JTAG vorhanden ist.
    Hinter der m32def.dat Angabe steckt ein Atmega 32......

    Als ich es jetzt getestet hatte habe ich erst das Programm geproggt, seriell angesteckt, lesen oder schreiben gedrückt, den M32 machen lassen, dann ausgeschaltet, seriell abgesteckt, wieder angesteckt, wieder angeschaltet, und wieder einen Taster gedrückt.............
    nur hast du keinen Taster im Programm berücksichtigt, den man drücken könnte.
    Doch, in dem Prog. davor war ein Taster. Diesen habe ich ja jetzt durch die Serielle ersetzt.

    Hier wäre es nur folgerichtig, wenn du erstmal deinen Taster überprüfst, eine systematische Arbeitsweise führt bei mir immer zum Erfolg.
    Der Taster hatte ja auch funktioniert.

    Dein letztes Programm krankte ja an der falschen Tasterabfrage (Ergebnis immer Null)
    Da hast du recht.

    jetzt muss es die serielle sein.
    Kannst du erläutern, warum?
    Das hatte ich doch jetzt schon geschrieben ( weiß ich nicht genau, muss aber daran liegen, da alles andere funktioniert.


    So, da mein Datenlogger ja nun funktioniert, habe ich noch mal ne neue Frage :
    Wie kann ich zwei Atmegas über I2C verbinden ?? Im Wiki habe ich schon geschaut, doch habe ich das nicht so ganz verstanden (wegen diesen Twsr und so weiter Befehlen ).
    Könnt ihr mir da weiterhelfen ?? Bitte ?

  9. #39
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    55
    Beiträge
    1.258
    So, da mein Datenlogger ja nun funktioniert, habe ich noch mal ne neue Frage
    Das ist schön, aber magst du dafür keinen neuen Thread aufmachen?
    I2C-Slave hat mit I2C-Einstieg nichts mehr zu tun und der Thread hier ist auch schon recht lang.

    Gruß, Michael

Seite 4 von 4 ErsteErste ... 234

Ähnliche Themen

  1. Problem mit I2C Sensor DRMOD-I2C-RVI
    Von muerzi im Forum Sensoren / Sensorik
    Antworten: 23
    Letzter Beitrag: 22.02.2010, 19:29
  2. I2C Overview für den Einstieg
    Von Vbxler im Forum Elektronik
    Antworten: 0
    Letzter Beitrag: 19.05.2008, 19:30
  3. Problem: Zwei MEGA8 via I2C-Bus koppeln (mit I2C-slave-Lib)
    Von Ulfens im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 11.01.2006, 16:25
  4. *I2C* maximale eingänge per i2c auf 8 digitale Pins
    Von Christian Sturm im Forum Elektronik
    Antworten: 9
    Letzter Beitrag: 22.06.2004, 20:44
  5. Grundlegendes zum Einstieg mit I2C / AVR / RN-Control etc.
    Von Trabukh im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 31
    Letzter Beitrag: 20.06.2004, 10:58

Berechtigungen

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

12V Akku bauen