Sida 1 av 7

Behöver hjälp med min kod!

Postat: 16 augusti 2009, 12:12:02
av Crille93
Nu har jag skaffat mig en moppe och blinkersen fungerade inte som den skulle så jag tänkte istället göra en egen blinkers med lysdioder och en picprocessor. Men sedan så tänkte jag ha lite mer lyse också (som blinkar under moppen osv.).
Men vad jag har förstått så kommer blinkersen ta 4kanaler, 2kanaler till strömbrytare till blinkersen och sedan själva blinkersen.

Så då har jag 14kanaler kvar och 1kanal ska gå till en tryckströmbrytare och resten av kanalerna ska vara lysdioder.
Och jag tänkte att man skulle göra så att varje gång man trycker till på tryckströmbrytaren så hoppar picen till nästa kod jag har gjort.

Ett exempel hur jag vill att det ska se ut:

Kod: Markera allt

________*Blinkers*________
"Om kanal 1 får ström"
Kanal 2 blinkar
"Om kanal 1 inte får ström"
Kanal 2 slocknar

"Om kanal 3 får ström"
Kanal 4 blinkar
"Om kanal 3 inte får ström"
Kanal 4 slocknar

________*Lyset*__________
"Om kanal 5 får strömsignal" (ej konstant ström eftersom man bara klickar till på tryckströmbrytaren)
kanal 6-18 blinkar (alla lampor blinkar utom blinkersen)

"Om kanal 5 får strömsignal" (ej konstant ström eftersom man bara klickar till på tryckströmbrytaren)
kanal 2, 4, 6-18 blinkar (alla lampor blinkar inkl. blinkersen)

"Om kanal 5 får strömsignal" (ej konstant ström eftersom man bara klickar till på tryckströmbrytaren)
Alla kanaler slocknar
Kan man göra så? Eller kommer det inte fungera?

Edit: Jag har en PIC16F690

Re: Behöver hjälp med min kod!

Postat: 16 augusti 2009, 12:20:58
av sodjan
Tja, fungerar och fungerar... :-)
Du har ju bara beskrivit hur du *vill* att det ska fungera och så
långt är det ju inget problem. Sen gäller det bara att skriva ihop en
liten kod som gör samma sak också, och då kan vi börja diskutera
och det fungerar eller inte... :-)
Inte för att det är något större problem att göra det, tänkt bara
på hur knapparna ska kännas av o.s.v. Några tips :

* Ett antal statusflaggor som håller reda på aktuellt status. D.v.s
- Vilka knappar är tryckta ?
- Vilka lampor (blinkers o.s.v) är tända (eller inte) ?

* En timer-snurra som löper hela tiden för att kolla knappar, räkna ner
"debounce" tiden för knappar och "blinka" med blinkers, uppdatera
status-flaggorna inför nästa varv o.s.v.

Re: Behöver hjälp med min kod!

Postat: 16 augusti 2009, 12:23:38
av v-g
Bygg på en labbplatta först. Annars kan det säkert fungera, ovanstående är föga match för vilken PIC som helst.

Re: Behöver hjälp med min kod!

Postat: 16 augusti 2009, 14:46:46
av Crille93
Okej! Men nu så behöver jag hälp om någon vet var jag kan hitta en kod som gör så att picen hoppar mellan olika "blinkprogram" varje gång jag trycker till på tryckknappen?

Re: Behöver hjälp med min kod!

Postat: 16 augusti 2009, 14:52:41
av v-g
Vaddå? Koden gör du ju själv?

Re: Behöver hjälp med min kod!

Postat: 16 augusti 2009, 14:54:28
av Crille93
v-g skrev:Vaddå? Koden gör du ju själv?
Jomen det är lite svårt att göra en kod när du inte vet vad du gör :roll:
Så jag tänkte om det fanns någon guide till hur man gjorde eller nåt :mrgreen:

Re: Behöver hjälp med min kod!

Postat: 16 augusti 2009, 14:57:29
av v-g
Börja med en LED få den att lysa, sätt dit två få dem att blinka. Koppla in en knapp som släcker den ena medan den andra blinkar osv. Bara att lära sig från grunden allt finns i forumet om du söker.

Lycka till!

Re: Behöver hjälp med min kod!

Postat: 16 augusti 2009, 15:01:00
av Crille93
v-g skrev:Börja med en LED få den att lysa, sätt dit två få dem att blinka. Koppla in en knapp som släcker den ena medan den andra blinkar osv. Bara att lära sig från grunden allt finns i forumet om du söker.

Lycka till!
Jag har lärt mig sånna saker redan men det är just den där biten att du skickar in en signal en kort stund med hjälp av en tryckströmbrytare och det ska säga åt picen att hoppa till nästa program.
Men jag ska söka och se om jag hittar något

Re: Behöver hjälp med min kod!

Postat: 16 augusti 2009, 15:05:30
av vfr
Som jag har skrivit tidigare, LED:ar är väldigt tacksamma att börja labba med. Din variant med olika program och olika möjligheter ger väldigt stora chanser att lära sig olika tekniker att lösa problem. Mycket lämpligt som nybörjarprojekt!

Jag antar att du med "kanaler" menar I/O på mikrokontrollern. Kanaler är väl kanske inte en helt lämplig benämning. Man använder kanaler för att benämna utgångar för t.ex PWM-styrning, men allmänna styrningar av LED:ar och inläsning av knappar brukar bara benämnas ingångar och utgångar, eller kort I/O.

Re: Behöver hjälp med min kod!

Postat: 16 augusti 2009, 15:24:22
av Crille93
vfr skrev:Som jag har skrivit tidigare, LED:ar är väldigt tacksamma att börja labba med. Din variant med olika program och olika möjligheter ger väldigt stora chanser att lära sig olika tekniker att lösa problem. Mycket lämpligt som nybörjarprojekt!

Jag antar att du med "kanaler" menar I/O på mikrokontrollern. Kanaler är väl kanske inte en helt lämplig benämning. Man använder kanaler för att benämna utgångar för t.ex PWM-styrning, men allmänna styrningar av LED:ar och inläsning av knappar brukar bara benämnas ingångar och utgångar, eller kort I/O.
Okej!

Men nu har jag sökt på forumet och jag kan inte hitta någon som har hållt på med picprocessor och tryckknapp så om någon vänlig själ kunde länka till någon sida som har en guide till det och helst att den har fler guider :mrgreen:

Re: Behöver hjälp med min kod!

Postat: 16 augusti 2009, 15:25:14
av v-g
Kan du redan det i mitt förra inlägg så fila på koden bara?

Pseudokod:

Kod: Markera allt

Blinksekvens1
blinka så här
om knapp nedtryckt
   gå till Blinksekvens2

Gå till Blinksekvens1

Blinksekvens2
blinka så här
om knapp nedtryckt
   gå till Blinksekvens3

Gå till Blinksekvens2

osv osv osv
till slutet där det står
om knapp nedtryckt
   gå till BlinksekvensX

Gå till Blinksekvens1
edit:
Knapp nedtryckt kan du lösa med många olika tekniker, ett (ganska dåligt men enkelt) sätt är att bara ha en om nedtryckt gå till vänta efter varje ställe man känner av om knappen är nedtryckt. Man kan även lösa detta i interupt (bäst) och säkert på flera andra vis också.

Re: Behöver hjälp med min kod!

Postat: 16 augusti 2009, 15:33:38
av Crille93
Okej! Men hur ser en sån kod ut? "om knapp nedtryckt-> gå till xxxxxxx" :roll:

EDIT:
Tryck inte på citera när du ska svara på ett inlägg, detta är väl upptaget i forumet "regel 1"!
Tagit bort fel citerning. //lgrfbs

Re: Behöver hjälp med min kod!

Postat: 16 augusti 2009, 15:47:04
av sodjan
Sluta dubbelposta allt som någon annan redan har skrivit !
Ser du inte hur det skräpar ner i tråden ?
Det är väldigt enkelt, sluta bara att klicka på citera-knappen.
Och sen dessutom bara för att lägga *en* enda rad själv... :roll:

Sen får du nog också se till att göra lite själv. Du har ju redan beskrivit
ganska exakt vad du vill att koden ska göra i första inlägget. Så det är
bara att sätta igång och "hacka kod". Om du sedan kör fast så kan du
gärna ropa på hjälp, men du måste faktiskt försöka först...

Re: Behöver hjälp med min kod!

Postat: 16 augusti 2009, 15:49:58
av v-g
I början:

Kod: Markera allt

#DEFINE Button PORTA, 5
Sen någonstans i koden

Kod: Markera allt

   BTFSS Button
      GOTO Again_1

  CALL Delay_A_While

Wait_4_Button_Release
   BTFSC Button
      GOTO Wait_4_Button_Release

Again_2
  osv osv

Men detta är ju ingen raketvetenskap direkt precis som sodjan skriver utan detta fixar du om du trevar på lite.

Re: Behöver hjälp med min kod!

Postat: 16 augusti 2009, 15:59:09
av Crille93
Tack! Jag hoppas verkligen att jag får ihop det här nu :D

Men det är alltså såhär:

Kod: Markera allt

**Kod1**
Alla blinkar
   BTFSS Button
      GOTO Kod1

  CALL Delay_A_While

Wait_4_Button_Release1
   BTFSC Button
      GOTO Wait_4_Button_Release1


**Kod2**
Alla blinkar förutom blinkers
   BTFSS Button
      GOTO Kod2

  CALL Delay_A_While

Wait_4_Button_Release2
   BTFSC Button
      GOTO Wait_4_Button_Release2

**Kod3**
osv......
Men då måste man hålla in knappen tills blinkkoden är slut? Eller avbryts koden när jag trycker in strömbrytaren?