- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 16

Thema: CPU wird langsamer, Fusebits falsch ???

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Benutzer Stammmitglied Avatar von modtronic
    Registriert seit
    14.05.2011
    Ort
    Hagen
    Alter
    47
    Beiträge
    68
    Hallo

    mehr code gibt es für die ausgabe nicht.
    die routinen laufen permantent im programm mit.
    Es gibt eine eigangsroutine und eine ausgangsroutine.
    die probleme fangen erst an wenn die ausgangsroutinen wie oben gezeigt ins programm eingefügt werden..ca wenn ich das ganze 9 oder 10 mal aufrufe.

    die Variablen sind immer data mit der entsprechenden wertigkeit
    zb

    taste 1
    data1 = 1

    taste 2
    data2 = 2

    taste 3
    data4 = 4

    wenn man das jetzt addiert ensteht die bitkombination

    1 + 2 + 4 + 0 + 0+ 0 + 0 +0 = was dann irgendwann 0- 255 entspricht um den mcp port anzussprechen
    vllt kann man das auch mit einer routine anders machen

    die lib ist die i2c.h von codevision

    Grüsse
    Patrick

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    36
    Beiträge
    5.063
    Hast du schon versucht das Ergebnis vorher zusammenzusetzten und dieses dann gesamt an die Funktion zu übergeben?
    Also in etwa so :
    Code:
    unsigned char ergebnis = data1 + data2 + ... + data8
    I2c_start
    ...
    ...
    ...
    i2c_write(ergebnis)
    I2c_stop
    Was du auch testen kannst wäre einen fixen wert zu übergeben (und schauen ob sich etwas verbessert)

    Ein weiterer test wäre nicht mit addition sondern mit schieben (ergebnis = (data1<<0) | (data1<<1) | ... | (data8<<7) ).
    In dataX steht dann eine 0 oder 1 je nachdem ob der Eingang low oder high ist.

    MfG Hannes

  3. #3
    shedepe
    Gast
    Kann die Library denn überhaupt den Hardware I2C des Atmegas nutzen. Wenn ich danach google, dann sieht das stark danach aus als ob die lib Software I2C auf jedem beliebigen Pin machen kann. Da muss man sich natürlich nicht wundern wenn das entsprechend langsam ist.

    Als alternative kann ich die lib von Peter Fleury empfehlen: http://homepage.hispeed.ch/peterfleu...-software.html
    Geht dann natürlich nur auf den Hardware I2C Pins.

  4. #4
    Benutzer Stammmitglied Avatar von modtronic
    Registriert seit
    14.05.2011
    Ort
    Hagen
    Alter
    47
    Beiträge
    68
    Zitat Zitat von 021aet04 Beitrag anzeigen
    Hast du schon versucht das Ergebnis vorher zusammenzusetzten und dieses dann gesamt an die Funktion zu übergeben?
    Also in etwa so :
    Code:
    unsigned char ergebnis = data1 + data2 + ... + data8
    I2c_start
    ...
    ...
    ...
    i2c_write(ergebnis)
    I2c_stop
    Was du auch testen kannst wäre einen fixen wert zu übergeben (und schauen ob sich etwas verbessert)

    Ein weiterer test wäre nicht mit addition sondern mit schieben (ergebnis = (data1<<0) | (data1<<1) | ... | (data8<<7) ).
    In dataX steht dann eine 0 oder 1 je nachdem ob der Eingang low oder high ist.

    MfG Hannes
    Moin

    Das mit dem ergebnis vorher hatte ich auch schon. bewirkt keine änderung.
    Was meinst du genau mit schieben ???

    grüsse
    Patrick

    - - - Aktualisiert - - -

    Zitat Zitat von shedepe Beitrag anzeigen
    Kann die Library denn überhaupt den Hardware I2C des Atmegas nutzen. Wenn ich danach google, dann sieht das stark danach aus als ob die lib Software I2C auf jedem beliebigen Pin machen kann. Da muss man sich natürlich nicht wundern wenn das entsprechend langsam ist.

    Als alternative kann ich die lib von Peter Fleury empfehlen: http://homepage.hispeed.ch/peterfleu...-software.html
    Geht dann natürlich nur auf den Hardware I2C Pins.
    Moin

    wie gesagt, ich habe vieles selber erlernt und so geht es ja auch.
    ob und was die interne lib kann, weiss ich nicht. ich nutze codevision

    interessant wäre, mir vllt mit einem beispiel zu zeigen was du genau meinst.
    leider habe ich das so nicht ganz verstanden...

    Grüsse
    Pat

    - - - Aktualisiert - - -

    gibt es deine keine lib für den mcp23017 ??
    habe nur was für den arduino gefunden

Ähnliche Themen

  1. ATMEGA16 nicht mehr erreichbar. Fusebits falsch gesetzt?
    Von ricola im Forum AVR Hardwarethemen
    Antworten: 12
    Letzter Beitrag: 25.12.2013, 18:46
  2. Zweiter Mikrocontroller als Taktgeber - Fusebits falsch gestellt -.-
    Von Lif im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 4
    Letzter Beitrag: 10.12.2012, 20:04
  3. [ERLEDIGT] Stopwatch wird ignoriert/ falsch interpretiert
    Von Mac80 im Forum Robby RP6
    Antworten: 3
    Letzter Beitrag: 09.05.2012, 13:31
  4. Fusebits werden falsch ausgelesen u. lassen sich nich ändern
    Von memi im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 5
    Letzter Beitrag: 10.05.2006, 15:27
  5. Mega32 Fusebits falsch gesetzt
    Von klucky im Forum AVR Hardwarethemen
    Antworten: 12
    Letzter Beitrag: 28.01.2006, 22:49

Berechtigungen

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

Labornetzteil AliExpress