Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Pascal - Trasformare programma
Forum - Pascal - Trasformare programma

Avatar
Petenausen (Normal User)
Newbie


Messaggi: 11
Iscritto: 26/04/2011

Segnala al moderatore
Postato alle 20:23
Venerdì, 24/05/2013
Buonasera a tutti,
avrei l'urgenza di trasformare il seguente programma da mikroc a mikropascal.
Se qualcuno riuscisse a farmelo e a farlo funzionare sarei disposto anche a pagarlo.
E' veramente urgente
@       DEVICE  INTRC_OSC
@       DEVICE  WDT_OFF
@       DEVICE  PWRT_OFF
@       DEVICE  MCLR_OFF
@       DEVICE  BOD_OFF
@       DEVICE  LVP_OFF
@       DEVICE  CPD_OFF
@       DEVICE  CCPMX_ON

DEFINE OSC 4               ' Specifica clock a 4MHz
define ADC_BITS 8
DEFINE ADC_SAMPLEUS 50
DEFINE ADC_CLOCK 3

OSCCON = $60               'Imposta clock interno a 4MHz
ADCON1 = 2                 'RA0..RA4 pin analogici

TRISA  = %00001111            
TRISB  = %11110000
          
symbol msx1 =  PORTB.0     'motore destro avanti
symbol msx2 =  PORTB.1     'motore destro indietro
symbol mdx1 =  PORTB.2     'motore sinistro avanti
symbol mdx2 =  PORTB.3     'motore sinistro indietro
symbol S1   =  PORTB.4     'radar SRF05 DX
symbol S2   =  PORTB.5     'radar SRF05 SX

symbol lama =  PORTA.4     'motore lama
symbol lch  =  PORTA.6     'led batteria scarica  (giallo)
symbol lan  =  PORTA.7     'led anomalia (rosso)

umi var byte               'variabile pioggia
Vb  var byte               'variabile tensione batteria
tem Var byte               'variabile temperatura

tp  var word
mov var word
distdx var word
distsx var word

PORTB = 0
lan=0
lch=0
S1=0
S2=0

pause 500                  ' Avvia taglio erba    
lama=1

pause 500
mdx1=1                     ' Motori avanti
mdx2=0
msx1=1
msx2=0
              
MAIN

    adcin 3,tem                'lettura della temperatura del motore
    adcin 2,umi                'lettura dell'umidità
    adcin 1,lux                'lettura della luminosità        
    ADCIN 0,Vb                 'lettura della tensione della batteria

    if vb<100 then goto  standby        ' Sottotensione batteria

    if tem<80 then goto sicurezza       ' sovratemperatura
    
    if umi<80 then goto sicurezza       ' Pioggia                      

    pause 500
    
    ' Rilevamento ostacolo DX
    PULSOUT S1, 2                         ' 20usec impulso start  
    PULSIN S1, 1, distdx                  ' legge distanza ostacolo DX  
    
    ' Rilevamento ostacolo SX
    PULSOUT S2, 2                         ' 20usec impulso start  
    PULSIN S2, 1, distsx                  ' legge distanza ostacolo SX  
    
    if distdx<300 and distsx<300 then     ' Ostacolo di fronte                                    
        mdx1=0                            ' Fermo motori
        mdx2=0
        msx1=0
        msx2=0    
        pause 500                         ' Indietreggio
        mdx1=0
        mdx2=1
        msx1=0
        msx2=1
        pause 1000
        mdx1=0                            ' Fermo motori  
        mdx2=0
        msx1=0
        msx2=0
        pause 500  
                                          ' Ruoto rasaerba
        random mov
        tp = mov/200                      ' DX o SX a caso
        if (mov//2)=0 then
            mdx1=1
            mdx2=0
            msx1=0
            msx2=1
            pause tp                      ' Per un tempo casuale
            else
            mdx1=0
            mdx2=1
            msx1=1
            msx2=0
            pause tp                      ' Per un tempo casuale
        endif          
        goto MAIN
    endif
    
    if distsx < 300 then                  ' Ostacolo sulla SX
        mdx1=0                            ' Fermo motore DX finchè ostacolo SX
        goto MAIN
    endif            

    if distdx < 300 then                  ' Ostacolo sulla DX        
        msx1=0                            ' Fermo motore SX finchè ostacolo DX
        GOTO MAIN
    endif
                                          ' Nessun ostacolo riprende la marcia
    mdx1=1
    mdx2=0
    msx1=1
    msx2=0
          
goto MAIN

'SOTTO TENSIONE
standby  
    PORTB=0
    lama=0                
    lch=1        
    pause 500
    lch=0
    pause 500
goto sicurezza

'SOVRATEMPERATURA o PIOGGIA
sicurezza
    PORTB=0
    lama=0
    lan=1
    pause 500
    lan=0
    pause 500
goto sicurezza

end

PM Quote
Avatar
LittleHacker (Member)
Guru


Messaggi: 1033
Iscritto: 28/04/2009

Segnala al moderatore
Postato alle 20:39
Venerdì, 24/05/2013
NO

Leggi il regolamento!
P.S: E' mikroBasic e non mikroC!

Ultima modifica effettuata da LittleHacker il 24/05/2013 alle 20:42
PM Quote
Avatar
Petenausen (Normal User)
Newbie


Messaggi: 11
Iscritto: 26/04/2011

Segnala al moderatore
Postato alle 20:46
Venerdì, 24/05/2013
non si può?

PM Quote
Avatar
LittleHacker (Member)
Guru


Messaggi: 1033
Iscritto: 28/04/2009

Segnala al moderatore
Postato alle 21:58
Venerdì, 24/05/2013
Testo quotato

Postato originariamente da Petenausen:

non si può?



Leggi il regolamento!

PM Quote