-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: groes Projekt Groes PROBLEM Gebudesteuerung

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    07.02.2007
    Ort
    demling
    Alter
    29
    Beitrge
    41

    groes Projekt Groes PROBLEM Gebudesteuerung

    Anzeige

    HI
    Hab mir eine Steuerung fr meine wohnug zusammengeltet

    1 X Mega644 Haupt MCU
    1 X Mega16 Touch Screen auswertung
    2 X mega8 Aktoren fr licht und netzwerk

    m644 ext quartz 8 mhz
    m16 int 8mhz
    m8 int 1 mhz (geht sonst nicht mehr nach fusebit einstellung auf 8 mhz)

    alles ber IC verbunden (ausser der m16 mit dem m644 direkt ber 8bit port)
    die IC leitungen haben eine gesammtlnge von ca 15 m 2,5kOhm abschluss

    touch = am mega644 = portd
    es hngen noch D/A A/D und tempsensoren dran.

    so problem is jetzt nach einiger zeit hngt sich der Bus auf.

    watchdog hat auch nix gebrach (luft dan gar nicht mehr)
    Angehngte Dateien Angehngte Dateien

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    07.02.2007
    Ort
    demling
    Alter
    29
    Beitrge
    41

    sry

    Wie fgt man code ein?
    Angehngte Dateien Angehngte Dateien

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.05.2007
    Beitrge
    594
    Die Tags fr Code sind (berraschung!) [code ] [/code ] (jeweils ohne Leerzeichen vor dem hinteren Bracket...)

    Oder auch ctrl-c im Browser (auf dem Mac zumindest)

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von Hessibaby
    Registriert seit
    20.11.2003
    Ort
    Gelsenkirchen
    Alter
    65
    Beitrge
    1.597
    Wann hngt sich der Bus auf ?
    Im langandauerndem Ruhezustand ?
    Das Gegenteil vom Watchdog ist keepaliving, ist z.B. im LAN realisiert ( deshalb blinken die LEDs Deiner Netzwerkkarte zyklisch )
    Gru

    Planung ersetzt Zufall durch Irrtum

    Gru aus dem Ruhrgebiet Hartmut

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.08.2007
    Ort
    Oberhofen im Inntal (Tirol)
    Alter
    43
    Beitrge
    377

    Re: groes Projekt Groes PROBLEM Gebudesteuerung

    Zitat Zitat von demlinger
    die IC leitungen haben eine gesammtlnge von ca 15 m 2,5kOhm abschluss
    Hallo demlinger!

    IC ist nicht fr diese Lnge gedacht. Verwendest du IC Extender?

    - http://www.alldatasheet.com/view.jsp?Searchword=P82B715
    - http://www.alldatasheet.com/view.jsp?Searchword=P82B96

    mfg
    Gerold
    :-)


    PS: Du verwendest Software-IC statt das in den Controller eingebaute TWI. Probiere es mal mit
    Code:
    'TWI (IC)
    $lib "i2c_twi.lbx"       'Hardware TWI einschalten
    'Config Scl = Portc.5
    'Config Sda = Portc.4
    Config Twi = 100000
    I2cinit

    PS2: ``Waitms 1`` nach IC-Schreiboptionen des Masters ist meist zu wenig. Erhhe zum Testen mal auf ``Waitms 5`` oder sogar auf ``Waitms 10``.


    PS3: Nach einer Lese- oder Schreibaktion des Masters steht in der Variable "err" ob dabei ein Fehler aufgetreten ist. Du knntest diese Variable auswerten und dementsprechend eine Fehlermeldung auf dem Display ausgeben. Dann weit du wer oder was den Fehler verursacht. -- Aber ich denke mal, dass du mit ``waitms 1`` einfach zu wenig lang wartest. Bei meinen Tests mit IC-EEPROMs wurde das System erst bei ``waitms 5`` stabil. Siehe: http://www.roboternetz.de/phpBB2/vie...=360112#360112

    .

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    46
    Beitrge
    765
    Wie hast du den WatchDog eingebaut? Beim 644 musste ich am Anfang des Programmes innerhalb 4 Taktzyklen den Watchdog deaktiveren, sonst hat er gleich wieder angeschlagen.

    So fngt mein Programm an:
    Code:
    $asm
    
    Wdt_off:
    ; Turn off global interrupt
    cli
    ; Reset Watchdog Timer
    wdr
    ; Clear WDRF in MCUSR
    in r16, MCUSR
    andi r16, wdrf;(0xff & (WDRF))
    Out Mcusr , R16
    ; Write logical one to WDCE and WDE
    ; Keep old prescaler setting to prevent unintentional time-out
    in r16, WDTCSR
    ori r16,wdce; (1<<WDCE) | (1<<WDE)
    Out Wdtcsr , R16
    ; Turn off WDT
    ldi r16,wde; (0<<WDE)
    Out Wdtcsr , R16
    
    $end Asm
    
    
    $regfile = "m644def.dat"
    
    $crystal = 16000000
    $loadersize = 2048
    Stop Watchdog
    Config Watchdog = 2048
    wobei das letzte Stop Watchdog noch ein berbleibsel aus ersten Versuchen ist. Kurz vor der Hauptschleife starte ich den Watchdog wieder und in der Hauptschleife wird er regelmig zurckgesetzt.

    Den Code habe ich aus dem Datenblatt des m644.
    Wenn das Herz involviert ist, steht die Logik auen vor! \/

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    07.02.2007
    Ort
    demling
    Alter
    29
    Beitrge
    41

    thx

    schon mal thx @ all

    @Hessibaby
    hab den fehler schon ziehmlich auf die aktoren begrentzt der der das Licht Steuert hngt sich teilweie nach dem audfhren des EIN befehls auf und bleibt dann auf 1 (solte aber nur fr eine zeit <1sec 1 sein hab Stromstoschalter ) und blokiert den Bus

    @python_rocks
    es sind eigentlich nur zwei lange leitungen die von der steuereinheit weggehen je ca. 4-5 m muss ich dann beide mit den extendern P82B715 versehen?
    also insgesamt dann 4 extender das mit den waitms werd ich mal ausprobieren
    der bus ist auch noch ziehmlich ungenau bei der temperatur springt die zahl immer 2 Grad hin und her
    da smit dem fehlerprotokoll such ich schon lange hab aber nie irgend einen verwendbaren code gefunden
    port c ist voll mit dem display I2C muss also software sein

    @peterfido
    also muss ich den watchdog auch in jeder anderen schleife starten und vor dem loop reseten oder ?

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.08.2007
    Ort
    Oberhofen im Inntal (Tirol)
    Alter
    43
    Beitrge
    377

    Re: thx

    Zitat Zitat von demlinger
    @python_rocks
    es sind eigentlich nur zwei lange leitungen die von der steuereinheit weggehen je ca. 4-5 m muss ich dann beide mit den extendern P82B715 versehen?
    also insgesamt dann 4 extender das mit den waitms werd ich mal ausprobieren
    [...]
    da smit dem fehlerprotokoll such ich schon lange hab aber nie irgend einen verwendbaren code gefunden
    Hallo demlinger!

    Du schreibst von *zwei* Leitungen. IC braucht aber *drei* Leitungen. SCL, SDA und **GND**.

    4-5 m ist ziemlich viel. Wenn man bedenkt, dass IC ursprnglich nur fr die gerteinterne Verbindung von ICs gedacht war, wrde ich ab ein paar Meter dringende dazu raten, vor jedes weiter entfernte IC-Gert einen P82B96 zu schalten. Das sagt mir zumindest mein Gefhl. Belege dafr habe ich keine. Die Leitungen sollten auch miteinander verdrillt sein. Ein geschirmtes CAT.5 Netzwerkkabel (SFTP) wre ideal.

    Nhere Informationen stehen im Datenblatt: http://www.alldatasheet.com/datashee...PS/P82B96.html

    Und was die ERR-Variable betrifft. Diese Variable brauchst du nicht extra definieren. Diese kannst du direkt nach dem I2CSTOP z.B. mit PRINT ausgeben lassen. Wenn ERR nicht 0 ist, dann ist ein Fehler aufgetreten.

    mfg
    Gerold
    :-)

  9. #9
    Erfahrener Benutzer Roboter Genie Avatar von Hessibaby
    Registriert seit
    20.11.2003
    Ort
    Gelsenkirchen
    Alter
    65
    Beitrge
    1.597
    @Hessibaby
    hab den fehler schon ziehmlich auf die aktoren begrentzt der der das Licht Steuert hngt sich teilweie nach dem audfhren des EIN befehls auf und bleibt dann auf 1 (solte aber nur fr eine zeit <1sec 1 sein hab Stromstoschalter ) und blokiert den Bus

    Schaltest Du ein Relais ?
    Wenn ja, welche Stromaufnahme hat das, und wie tief bricht die Spannung ein ?
    Lte mal versuchsweise einen Elko mit 470F parallel zur Spannungsversorgung am Aktormodul ein, denn wahrscheinlich bricht die Spannung bein Relaiseinschalten so weit zusammen, das der C sich aufhngt.
    Gru

    Planung ersetzt Zufall durch Irrtum

    Gru aus dem Ruhrgebiet Hartmut

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    46
    Beitrge
    765
    Wenn der Watchdog einmal gestartet ist, dann muss er nur innerhalb seiner Ansprechzeit zurckgesetzt werden, damit er keinen Reset auslst. Dieses mache ich normal innerhalb der Hauptschleife, denn diese sollte recht hufig durchlaufen werden. Vorsicht ist bei Befehlen wie input und wait angesagt, denn diese halten das Programm evtl lnger an, als der Watchdog wartet.
    Wenn das Herz involviert ist, steht die Logik auen vor! \/

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhnge hochladen: Nein
  • Beitrge bearbeiten: Nein
  •