nesnasim 1-wire :-)

Prichy prichy@volny.cz
Sobota Březen 26 07:11:11 CET 2005


Zdravim.

dotaz se tyce "me" meteostanice(89C52). Mam ji osazenou 18B20-kou 
komunikujici 1-wire .

inicializace preruseni:

 TR0 = 1;                               // start timer 0
  ET0 = 1;                               // enable timer 0 interrupt
  ES = 1;                                // enable serial interrupt
  PS = 0;                                    // set serial interrupts to 
hi priority  
  EA  = 1;                               // global interrupt enable
  TR1 = 1;                               // start timer 1          
inkrementuje promennou citac - > generuje 1 s pro hodiny
  TI = 0;                                  // nastavuji pri potrebe vysilat


v hlavni smycce

 tepl= Read_Temperature();  // cte teplotu z dallasu



PC posila dotazy do zarizeni kazdou sekundu, problem je, kdyz dojde 
preruseni na serial
pri konani casove narocne  Read_Temperature() pak komunikace s Dallasem 
probehne spatne
(volana pri kazdem pruchodu hl. smyckou).

Napadaji me dve reseni:

1) zastavit na dobu konani Read_Temperature() preruseni seriaku
     (pokud by selhala komunikace PC - Hardware opakovat)
2)obnovovat promennou tepl v preruseni casovace, pak by ovsem
    muselo mit vetsi prioritu (take by se PC a hardware nemusely vzdy 
domluvit)

Jak resite podobne problemy?   (mozna je vic reseni, jeste nemam zahraty 
mozek :-D )

Prichy










Další informace o konferenci Hw-list