Torna indietro   BaroneRosso.it - Forum Modellismo > Elettronica > Circuiti Elettronici


 
 
Strumenti discussione Visualizzazione
Prev Messaggio precedente   Prossimo messaggio Next
Vecchio 31 luglio 14, 15:00   #29 (permalink)  Top
User
 
Data registr.: 19-07-2014
Messaggi: 17
Citazione:
Originalmente inviato da romoloman Visualizza messaggio
Ti ho ripulito un po il codice...
ho fra l'altro notato che c'era un problema in "mezzo" il controllo del tasto veniva fatto solo ogni 2 secondi...

Normalmente per far lampeggiare un led quando c'è di mezzo il controllo di eventi esterni l'uso dei delay non è la cosa più corretta da fare... si usano anzi gli interrupt sui timers ma visto che sei alle prime armi evitiamo di complicarti la vita:

Codice:
program MyProject
' Declarations section
sub function controlla_gpio() as integer
  dim count as integer
  count=0
  'semplice procedura di debouncing....
  while ((gpio.0=1) and (count<200))
    delay_ms(1)
    count=count+1
  wend
  if (count=200) then
     result=1
  else
     result=0
  end if
end sub

main:
' RIMUOVERE I COMMENTI SUcCESSIVI IN CASO DI OSCILLATORE INTERNO
'asm
' bsf status,RP0;
' call 0x3FF
' movwf osccal
' bcf status,RP0
'end asm

TRISIO.1=0
TRISIO.2=0
TRISIO.0=1
cmcon=7

fissa:
while true
  gpio.1=1
  gpio.2=1
  if controlla_gpio()=1 then
    goto inizio
  end if
wend


inizio:
delay_ms(100)
while true
  GPIO.1=1
  gpio.2=1
  delay_us(50)
  GPIO.2=0
  gpio.1=0
  delay_us(50)
  IF controlla_gpio()=1 THEN
    GOTO mezzo
  end if
wend


mezzo:
delay_ms(100)
while true
  gpio.2=1
  delay_ms(500)
  if controlla_gpio()=1 then
    goto strobo
  end if
  gpio.2=0
  delay_ms(500)
  if controlla_gpio()=1 then
    goto strobo
  end if
  gpio.1=1
  delay_ms(500)
  if controlla_gpio()=1 then
    goto strobo
  end if
  gpio.1=0
  delay_ms(500)
  if controlla_gpio()=1 then
    goto strobo
  end if
wend

strobo:
delay_ms(100)
while true
  gpio.1=1
  gpio.2=1
  delay_ms(50)
  gpio.1=0
  gpio.2=0
  delay_ms(50)
  if controlla_gpio()=1 then
    goto fissa
  end if
wend
end.
Il primo codice che mi hai postato, rimane fisso sul primo effetto, mentre

il secondo parte, premo il pulsante, mi cambia effetto e dopo 2 secondi torna al primo effetto... oppure se premo un po' di piu cambia effetto poi torna al primo

Ultima modifica di trabo : 31 luglio 14 alle ore 15:06
trabo non è collegato   Rispondi citando
 

Bookmarks




Regole di scrittura
Non puoi creare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi inserire allegati
Non puoi modificare i tuoi messaggi

BB code è Attivato
Le faccine sono Attivato
Il codice [IMG] è Attivato
Il codice HTML è Disattivato
Trackbacks è Disattivato
Pingbacks è Disattivato
Refbacks è Disattivato


Discussioni simili
Discussione Autore discussione Forum Commenti Ultimo Messaggio
pic 12F629 faustog_2 Circuiti Elettronici 2 07 ottobre 13 11:52
ESC con PIC Italia Circuiti Elettronici 4 23 marzo 13 16:27
Problema con programma MPX per aggiornamento Royal PRO picman Radiocomandi 0 29 agosto 10 20:27
Programma facile per pic Orso82 Circuiti Elettronici 20 27 febbraio 05 16:44
Regolatore con PIC rapis Circuiti Elettronici 1 26 novembre 01 11:15



Tutti gli orari sono GMT +2. Adesso sono le 11:02.


Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2026
www.baronerosso.it - www.toymagazine.it