Il Comparatore
  Il modulo comparatore è disponibile solo su
  10F204/206.
  Il suo funzionamento è analogo a quello generale dei comparatori
  implementati nei Baseline e MidRange.
  Il diagramma del modulo è questo:
  
  Sostanzialmente si tratta di una versione semplificata del modulo
  comparatore dei PIC12F e 16F
  
  Il comparatore può essere abilitato e disabilitato da programma agendo sul
  registro COMCON0.
  L'uscita del comparatore può essere:
  
    - disabilitata
 
    - indirizzata ad un pin (C1OUT)
  oppure
 
    - utilizzata come ingresso di conteggio del TIMER0.
 
  
 
  La sua struttura è la seguente:
  
    
      
        | 
           CM1CON 
         | 
        
           bit 
         | 
        7 | 
        6 | 
        5 | 
        4 | 
        3 | 
        2 | 
        1 | 
        0 | 
      
      
        | 
           nome 
         | 
      
         C1OUT 
       | 
      
         !C1OUTEN 
       | 
      
         C1POL 
       | 
      
         !C1T0CS 
       | 
      
         C1ON 
       | 
      
      
         C1NREF 
       | 
      
         C1PREF 
       | 
      
         !C1WU 
       | 
    
    
      | 
         funzione 
       | 
      R/W | 
      R/W | 
      R/W | 
      R/W | 
      R/W | 
      R/W | 
      R/W | 
      R/W | 
    
    
      | 
         default 
       | 
      1 | 
      1 | 
      1 | 
      1 | 
      1 | 
      1 | 
      1 | 
      1 | 
    
    
     
    
      - 
        
bit
        7  C1OUT
      : flag uscita del comparatore
                   1
      = Vin+ > Vin-
                   0
      = Vin+ < Vin-
 
  
  - 
    
bit 6 !COUTEN:
    abilitazione uscita del comparatore
                 1 =
    disabilitata
                 0 = uscita
    sul pin C1OUT
 
  - 
    
bit 5 C1POL  : polarità uscita del comparatore
                
    1 = non invertita
                 0 =
    invertita
 
  - 
   
  bit 4 
    !C1T0CS: comparatore come sorgente di Timer0
            
        1 = la sorgente è scelta dal bit T0CS
                 0 = la
    sorgente è l'uscita del comparatore 
  - 
    
bit
    3  C1ON   : accensione comparatore
                 1 =
    abilitato
                 0 =
    disabilitato
 
  - 
    
bit
    2 C1NREF : selezione
    dell' ingresso Vin-
                 1 = C1IN-
                 0 =
    Vref
    0.6V 
 
  - 
    
bit
    1 C1PREF : selezione dell' ingresso Vin+
                 1 =
    C1IN+
                 0 =
    C1IN-
 
  - 
    
bit
    0  !C1WU  : Wake up per cambio di stato del comparatore
                 1 = 
    disabilitato
                 0 = 
    abilitato
 
  
  Vediamo un maggiore dettaglio:
  
    
      
        | bit | 
        Funzione | 
        Valore | 
      
  
      
        | C1OUT | 
      
      Questo bit permette conoscere lo stato dell' uscita del
        comparatore. | 
      
        
          -  1  Vin+ >
            Vin-
 
          - 0  Vin+< Vin-              
 
         
         | 
    
    
    
      | !COUTEN | 
    
      
        
          
              | 
            Questo bit abilita l' uscita del comparatore sul pin C1OUT.
              Se l' uscita non è abilitata il comparatore funziona ugualmente,
              ma il risultato della comparazione viene utilizzato solo
              internamente al micro. 
              Se è abilitata l' uscita, essa sostituisce la funzione sul pin 5
              (GP2). | 
           
          
            | 
              Con riferimento al diagramma iniziale, il bit comanda l'
              interruttore che collega l' uscita del comparatore al pin fisico. | 
           
         
       
     | 
    
    
        
          -  1 disab.(default) 
 
          - 0 uscita su GP2
 
         
        | 
    
    
      | C1POL | 
    
      
        
          
              | 
            Questo bit inverte il livello di uscita del comparatore. L'
              azione è effettuata da un gate XOR
              che inverte o meno il segnale a seconda del livello dei bit C1POL | 
           
         
       
     | 
    
    
        
    
          -  1 non inv.(default) 
 
          - 0 invertita
 
    
         
        | 
    
    
      | !C1T0CS | 
    Questo bit, se a 0, fa si che l' uscita del comparatore sia collegata
      all' ingresso del Timer0. 
      Se è posto a 1 (default) la scelta della sorgente è quella impostata col
      bit T0CS> dell'OPTION_REG  | 
    
        
    
          -  1 T0CS(default) 
 
          - 0 uscita a Timer0
 
    
         
        | 
    
    
      |   C1ON | 
      
        
          
            
                | 
            Questo bit accende o spegne il comparatore. In condizioni di
              spento, il consumo di corrente viene ridotto. | 
           
         
       
     | 
    
    
        
    
          -  1 abilitato (default) 
 
          - 0 disabilitato
 
    
         
        | 
    
    
      | C1NREF  | 
      
        
          
            
              
    
     
            
               | 
              Questo bit consente di scambiare C1IN- e 0.6Vref all' ingresso
              Vin- del comparatore. | 
           
         
       
     | 
    
    
        
    
          -  1 C1IN1-(default) 
 
          - 0 0.6Vref
 
    
         
        | 
    
    
      | C1REF | 
      
        
          
            
               
            
               | 
            Questo bit consente di scambiare C1IN+ e C1IN- all' ingresso
              Vin+ del comparatore. | 
           
         
       
     | 
     
        
    
          -  1 C1IN1+(default) 
 
          - 0 C1IN-
 
    
         
        | 
    
    
      |   !C1WU | 
      
        
          
            
                | 
            Questo bit abilita o disabilita (default) la possibilità che l'
              uscita del comparatore, se cambia di stato, faccia cessare la
              condizione di sleep  | 
           
         
       
     | 
    
        
    
          -  1 disab.(default) 
 
          - 0 abilitato
 
    
         
          | 
    
    
   
    Anche se dal punto di vista della componentistica elettronica un
    comparatore è realizzabile con un amplificatore operazionale, questo
    comparatore integrato non è utilizzabile come op-amp in quanto la sua
    uscita non è analogica, ma esclusivamente digitale.
  
  Il riferimento negativo della comparazione può essere scelto tra la tensione
  di riferimento interna (band gap generator a 0.6V) e un pin esterno (CIN-); il riferimento positivo
  proviene da un pin esterno (CIN+).
  Il dettaglio delle funzioni e della programmazione del comparatore è indicato
  sul foglio dati.
  
    
      
        
  
   
  
  Al POR il comparatore è abilitato.
  Se non è richiesta la sua funzione, occorre disabilitarlo da programma agendo
  su C1ON. | 
    
  
   
 
  
  Lo scatto del comparatore non genera interrupt, ma un reset, identificato dal
  flag !CWU, per cui, al risveglio da sleep la causa va verificata discriminando
  le condizioni dei flag dello STATUS, come visto in precedenza.