Hallo,

> Ich verwende das NETIO von Pollin, Atmega32 ohne Anpassungen.
> 
> Dann mache ich (ohne Polling):
>       1w convert
>       OK
>       1w get 289dfb0402000072
>       297.74
> 
> Dasselbe Ergebnis wie bei dem Webserver (http://192.168.0.65/ow.ht)
> Besteht das Problem also nur beim Onewire ohne Polling?

Hmm.

> Ich habe dann mal versucht das Onewire Polling zum Laufen zu bekommen...
> Meine Config:
>       [*] Onewire device detection support              
>       [ ] Onewire DS2502 (eeprom) support               
>       [ ] Onewire DS2450 (4 channel ADC) support        
>       [*] Onewire Polling                               
>       (600) Time between 1w-bus discoveries in 1s steps 
>       (30) Time between polling in 1s steps             
>       [ ] Hooks                                         
>       [*] ECMD 1w list with values                      
>       [ ] ECMD 1w list with power mode                  
>       [*] Onewire naming support                        
>       (1) Maximum sensor count                          
>       [-] Onewire SNMP support                          
>       --- Debugging Flags                               
>       [*] Onewire ROM parsing (ECMD)                    
>       [ ] Onewire device detection (ECMD)               
>       [-] Onewire DS2450 (core)                         
>       [-] Onewire DS2450 (ECMD)                         
>       [ ] Onewire Polling      
> 
> 1w name set 0 289dfb0402000072 netio
> 
> 1w list
> 289dfb0402000072        netio   0.0
> OK
> 
> Dann dachte ich mir hm... Polling sollte doch irgendwas mit Zeit 
> voraussetzen, also
> habe ich unter Applcation "System clock support" und dort dann "Use CPU clock 
> to
> tick the clock" aktiviert.
> Jetzt funktioniert das Polling auch.

Hmm. Ich sehe im Code keine Abhängigkeit von der Clock.

onewire.c
  ifdef(`conf_ONEWIRE_POLLING',`timer(50, ow_periodic())')

Das Timermacro ist der ganz normal HZ-Tick in Ethersex. An dem hängt alles.

> Aber dann die große Enttäuschung, auch hier, wenn es kalt wird, brennt bei 
> Ethersex die Hütte ab ;(
> 
> 1w list
> 289dfb0402000072        netio   319.31  1
> OK
> 
> Mache ich etwas falsch?

Ich habe den Aufruf in Verdacht:

        itoa_fixedpoint(ow_sensors[i].temp.val,
                        ow_sensors[i].temp.twodigits + 1, temperature,
                        sizeof(temperature));

Vermutlich verwendet du einen anderen Compiler als ich (gcc483) und Dein
generierter Code sieht anders aus als meiner:

#ifdef ONEWIRE_ECMD_LIST_VALUES_SUPPORT
        char temperature[7];
        itoa_fixedpoint(ow_sensors[i].temp.val,
                        ow_sensors[i].temp.twodigits + 1, temperature,
    7b12:       20 91 6f 05     lds     r18, 0x056F     
    7b16:       27 fb           bst     r18, 7
    7b18:       66 27           eor     r22, r22
    7b1a:       60 f9           bld     r22, 0
    7b1c:       6f 5f           subi    r22, 0xFF       ; 255
    7b1e:       80 91 6e 05     lds     r24, 0x056E
    7b22:       92 2f           mov     r25, r18
    7b24:       9f 77           andi    r25, 0x7F       ; 127
    7b26:       88 0f           add     r24, r24
    7b28:       99 1f           adc     r25, r25
    7b2a:       27 e0           ldi     r18, 0x07       ; 7
    7b2c:       ae 01           movw    r20, r28
    7b2e:       4f 5f           subi    r20, 0xFF       ; 255
    7b30:       5f 4f           sbci    r21, 0xFF       ; 255
    7b32:       6a 01           movw    r12, r20
    7b34:       95 95           asr     r25
    7b36:       87 95           ror     r24
    7b38:       0e 94 b8 07     call    0xf70   ; 0xf70 <itoa_fixedpoint>
                        ow_sensors[i].temp.twodigits + 1, temperature,
                        sizeof(temperature));


Ich kenne mich mit dem AVR-Assembler nicht aus, vermute aber dass es
an der Vorzeichenexpansion liegen könnte.
Ich würde an Deiner stelle mal ein Debug-printf in itoa_fixedpoint einbauen.

> Darf ich dein Fork mal Testen?

Jederzeit: https://github.com/eku/ethersex

Komm doch bitte unseren IRC-Channel. Mail ist lästig und langsam.

_______________________________________________
Ethersex-devel mailing list
Ethersex-devel@list.zerties.org
http://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel

Antwort per Email an