HiFiForum.nu
Home | Forums | Profile | Register | Active Topics | Links | Members | Articles | PM | Search | FAQ
Username:
Password:
Save Password
Forgot your Password?

Private Messages
You must log in to check messages
 All Forums
 HiFiForum.nu - Mångfaldens forum
 Teknik och DIY
 Aleph P
 New Topic  Topic Locked
 Printer Friendly
Previous Page | Next Page
Author Previous Topic Topic Next Topic
Page: of 11

swede
Member

1091 Posts

Posted - 2003/03/03 :  15:39:06  Show Profile  Visit swede's Homepage Send swede a Private Message
Gott!

Får prova när jag kommer hem!

//magnus

perl -ne'chomp;$a.=pack"b*",$_;END{print"\n$a\n\n"}'<<RM
10000010001101101010011000001110000101100000010001001110
101011100011011010100110110011101000010001010000
RM
Go to Top of Page

loovet
Member

354 Posts

Posted - 2003/03/03 :  20:53:54  Show Profile  Visit loovet's Homepage Send loovet a Private Message
Hej Magnus,

har precis beställt en P16PRO programerare.

Vad tror du om att använda följande program tillsammans med den:

www.ic-prog.com

Enligt någon site jag var inne på så skall det fungera. Och det bästa av allt programmet är gratis...

/loovet

// det blev en aleph 1.7 //
Go to Top of Page

CF
Member

63 Posts

Posted - 2003/03/03 :  21:00:17  Show Profile Send CF a Private Message


Det nämda programmet fungerar bra med ludipipo programmeraren. Ställ in ic-prog på JDM programer.

///CF
Go to Top of Page

loovet
Member

354 Posts

Posted - 2003/03/03 :  22:16:01  Show Profile  Visit loovet's Homepage Send loovet a Private Message
Man kan väl säga att den "ludipipo" programerare som du gav förslag på är mycket enkel i sin konstruktion. Tror att även jag får ta och pröva mig på den någon dag då jag får lite tid över.

En bra länk på kretskortslayout m m.

http://hjem.get2net.dk/koch/per/pic.htm

/loovet

// det blev en aleph 1.7 //

Edited by - loovet on 2003/03/03 22:18:11
Go to Top of Page

Lash
Member

814 Posts

Posted - 2003/03/03 :  22:48:10  Show Profile Send Lash a Private Message
Hur går det för er andra med programeringen? Det verkar på det som ni skriver som ni snart är färdiga, själv har jag inte kommit längre än hur man får en lysdiod o blinka. Använder ni assembler? Eller det kanske inte finns något annat språk till pic-processorer. Vilka andra program använder ni som är bra att ha, typ PICemulatoer och allt vad det kan vara. Jag har bara provat på microships eget mplab, men har bara kollat runt i det lite.

Edited by - Lash on 2003/03/03 22:49:36
Go to Top of Page

Freddie
Member

322 Posts

Posted - 2003/03/03 :  22:54:25  Show Profile Send Freddie a Private Message
Lash,

Programmeringen är väl så gott som klar för mig. Lägger in IR rutinerna sedan, i övrigt så är programmet klart.
Jag skriver i C (www.bknd.com)

/Freddie
Go to Top of Page

swede
Member

1091 Posts

Posted - 2003/03/03 :  23:30:56  Show Profile  Visit swede's Homepage Send swede a Private Message
Hmmm... vad är det för skillnad mellan CC5X free edition och den som kostar pengar?

//magnus

perl -ne'chomp;$a.=pack"b*",$_;END{print"\n$a\n\n"}'<<RM
10000010001101101010011000001110000101100000010001001110
101011100011011010100110110011101000010001010000
RM
Go to Top of Page

epkpeng
400.000-klubben

4228 Posts

Posted - 2003/03/03 :  23:31:34  Show Profile  Visit epkpeng's Homepage Send epkpeng a Private Message
Nu e jag ju självklart införstådd i att det ÄR en del jobb med att bygga ett försteg eller slutsteg som DIY'are...

Men är det NÅN som är klar med en Nelson P? Nån som har bilder? Nån som har lyssningsintryck???

// Pär, utan att låta sur...
Go to Top of Page

swede
Member

1091 Posts

Posted - 2003/03/03 :  23:39:39  Show Profile  Visit swede's Homepage Send swede a Private Message
loovet: Var läste du att man kunde använda IC-prog till P16PRO? Jag får det inte att fungera...

//magnus

perl -ne'chomp;$a.=pack"b*",$_;END{print"\n$a\n\n"}'<<RM
10000010001101101010011000001110000101100000010001001110
101011100011011010100110110011101000010001010000
RM
Go to Top of Page

swede
Member

1091 Posts

Posted - 2003/03/03 :  23:41:55  Show Profile  Visit swede's Homepage Send swede a Private Message
epkpeng: Jag använder min dagligen, dock är inte volymkontrollen färdig än. Jag tycker det låter helt ok. Vet inte vad jag skall jämföra med. Har inte gjort några blindtester. Får lura hit min polare Max, med ett annat försteg och göra lite jämförande tester.

Freddie: Jag läste lite dåligt... Det verkar som att man kan koda upp till 1024 instruktioner med gratisvarianten av C-kompilatorn. Duger nog gott åt mig.

//magnus

perl -ne'chomp;$a.=pack"b*",$_;END{print"\n$a\n\n"}'<<RM
10000010001101101010011000001110000101100000010001001110
101011100011011010100110110011101000010001010000
RM
Go to Top of Page

loovet
Member

354 Posts

Posted - 2003/03/04 :  08:37:17  Show Profile  Visit loovet's Homepage Send loovet a Private Message
Här är sidan som säger att programmet skall fungera med P16PRO

http://electronickits.com/kit/complete/prog/ck1702.htm

/loovet

// det blev en aleph 1.7 //
Go to Top of Page

Lash
Member

814 Posts

Posted - 2003/03/04 :  13:13:51  Show Profile Send Lash a Private Message
Kör ni andra med C eller assembler?
Go to Top of Page

Freddie
Member

322 Posts

Posted - 2003/03/04 :  16:48:11  Show Profile Send Freddie a Private Message
quote:
Freddie: Jag läste lite dåligt... Det verkar som att man kan koda upp till 1024 instruktioner med gratisvarianten av C-kompilatorn. Duger nog gott åt mig.



Jo.. 1024 instruktioner räcker en stund. Jag kör själv med gratisvarianten, programmet ligger väl på ca 650 instruktioner för tillfället. Men det inkluderar saker till VF-Displayen, volymkontroll, ingångsväljare, lagring av saker i eeprom osv. Ett program som bara läser av pulsgivaren och presenterar resultatet på en port hamnar under 100 instruktioner.

/Freddie
Go to Top of Page

swede
Member

1091 Posts

Posted - 2003/03/04 :  18:49:35  Show Profile  Visit swede's Homepage Send swede a Private Message
Gott,

Då skall jag kolla in den (kompilatorn alltså). Den verkar ganska rättfram.

//magnus

perl -ne'chomp;$a.=pack"b*",$_;END{print"\n$a\n\n"}'<<RM
10000010001101101010011000001110000101100000010001001110
101011100011011010100110110011101000010001010000
RM
Go to Top of Page

swede
Member

1091 Posts

Posted - 2003/03/05 :  08:55:16  Show Profile  Visit swede's Homepage Send swede a Private Message
Det går långsamt, men framåt... ;=) Nu har jag fått igång mitt shift-register. Nästa steg är att mata utgångarna från shift-registret till en 8-bitars-latch. Efter det, skall jag ge mig på "rotary encodern". Jag har inte så mycket tid över, men kom fram till att jag kan effektivisera min tid på morgonen, genom att koda assembler samtidigt som jag käkar fukost. ;=)

Det måste ju nästan betyda att jag börjar bli hard core. Assembler till frukost. ;=)

Godans gott,
//magnus

perl -ne'chomp;$a.=pack"b*",$_;END{print"\n$a\n\n"}'<<RM
10000010001101101010011000001110000101100000010001001110
101011100011011010100110110011101000010001010000
RM
Go to Top of Page

swede
Member

1091 Posts

Posted - 2003/03/06 :  09:10:13  Show Profile  Visit swede's Homepage Send swede a Private Message
Och nu fungerar latchen...

Små steg, men ändå framåt.
Idag skall jag ge mig på rotary encodern, om jag inte går på ishockey, vill säga. Fy tusan vad dålig hockey de har här nere. Inte riktigt i klass med Frölunda och Djurgården. Mer som svensk division II damhockey.

//magnus

perl -ne'chomp;$a.=pack"b*",$_;END{print"\n$a\n\n"}'<<RM
10000010001101101010011000001110000101100000010001001110
101011100011011010100110110011101000010001010000
RM
Go to Top of Page

Lash
Member

814 Posts

Posted - 2003/03/06 :  13:30:56  Show Profile Send Lash a Private Message
Vart hittar du info om elfas rotary encoder? Deras pdf innehöll ju inte mycket.
Go to Top of Page

swede
Member

1091 Posts

Posted - 2003/03/06 :  13:36:32  Show Profile  Visit swede's Homepage Send swede a Private Message
Tja, det beror ju på vilken av dem du kollar på... Men om det är den här: http://www.elfa.se/pdf/35/03584745.pdf, så är det inte mycket du behöver titta på. Jag provade lite hemma och fick det hela att fungera.

Tricket är att koppla in pullup-motstånd mellan +5v och ben A och B. C kopplar du till jord. A och B kopplar du dessutom till din PIC. Sen är det bara att polla ingången med jämna mellanrum och jämföra med föregående pollning.

Förresten... Jag fick igång koden till min rotary encoder. Nu skall jag bygga reläkort...

//magnus

perl -ne'chomp;$a.=pack"b*",$_;END{print"\n$a\n\n"}'<<RM
10000010001101101010011000001110000101100000010001001110
101011100011011010100110110011101000010001010000
RM
Go to Top of Page

Lash
Member

814 Posts

Posted - 2003/03/06 :  14:53:46  Show Profile Send Lash a Private Message
Ok, men det står inget A,B eller C på min enconder, det är samma encoder som på pdfen. Det är tre stift på den plus två som är på encoderschasiet.

Encodern ger pulser av något slag på dom pinnar den är kopplad på, så mycket har jag förstått. Men hur vet PICen vilken som är vänster-puls och högerpuls? Ger den puls på ena pinnen åt vänster och puls på den andra åt höger? Kan du klistra in en snutt av just den koden så kanske jag förstår enklare hur det fungerar(kör du assembler?).

Edited by - Lash on 2003/03/06 15:01:10
Go to Top of Page

swede
Member

1091 Posts

Posted - 2003/03/06 :  16:47:55  Show Profile  Visit swede's Homepage Send swede a Private Message
Tjenare,

Om du vänder upp och ner på encodern så ser den ut så här:

-A-B-C
| |
o o
| |
------

Där o är pinnarna på chassit.
Jag får klistra in lite kod när jag kommer hem, för jag har inte tillgång till den på jobbet. Signalen som du får på A och B (när du kopplat C till jord och använder dig av "pull-up" motstånd) ger riktningen. Beroende på "vinkeln" på pinnen på encodern, så kommer du få ut fyra olika "state":

Pulståg "medurs".

A B
---------
0 0
0 1
1 1
1 0

Du ser riktningen genom att jämföra föregående poll med nuvarande. Låt oss säga att "förra" mätningen på benen gav (AB=01). Om den nya mätningen ger (AB=11) så vet du att man roterat pinnen medurs. Om däremot den nya mätningen ger (AB=00) så vet du att det är moturs.

Jag postar min kod (mycket rörig) senare.

Pseudokod (fiktiv kod) i C-liknande språk kan se ut så här:

quote:

while (true)
{
curr = poll(ROTARY_INPUT); // current reading

if ( curr != prev )
{
if ( ( curr == 0b00 && prev == 0b01 ) || // listing all "inc"
( curr == 0b10 && prev == 0b00 ) || // transitions
( curr == 0b11 && prev == 0b10 ) ||
( curr == 0b01 && prev == 0b11 ) )
{
increase_volume();
}
else // if not any of the increasing transitions
// it has to be "dec" transition
// or an illegal transition
{
decrease_volume();
}

prev = curr;
}
sleep(SLEEP_TIME) // sleep for a few microseconds
}



Lycka till,
//magnus

perl -ne'chomp;$a.=pack"b*",$_;END{print"\n$a\n\n"}'<<RM
10000010001101101010011000001110000101100000010001001110
101011100011011010100110110011101000010001010000
RM
Go to Top of Page

loovet
Member

354 Posts

Posted - 2003/03/06 :  18:24:45  Show Profile  Visit loovet's Homepage Send loovet a Private Message
Hej Magnus,

skulle du vilja utveckla det där med "pull-up" motstånd och hur man kopplar encodern till PIC:en. Jag trodde nämligen att man kopplade A och B på encoder direkt till PIC:en, men jag verkar ha fel någon stans.

Skulle det inte vara möjligt att lägga A på en interrupt port och sedan stämma av om B antingen är 0 eller 1 och på så sätt veta om man vrider åt höger eller vänster. Då behöver man ju inte lagra något i minnet. Skulle detta vara möjligt?

/loovet

// det blev en aleph 1.7 //

Edited by - loovet on 2003/03/06 18:28:38
Go to Top of Page

Freddie
Member

322 Posts

Posted - 2003/03/06 :  19:57:11  Show Profile Send Freddie a Private Message
loovet, du måste ha pullup motstånd på A och B. PIC16F874:an som jag kör med har inbyggda pull-up motstånd vilka lätt tas fram genom att ställa ett register, kommer inte ihåg om PIC16F84:an också har det dock.

Go to Top of Page

Lash
Member

814 Posts

Posted - 2003/03/06 :  20:06:00  Show Profile Send Lash a Private Message
Om man använder PIC16F87x, ska man inte ha några motstånd där då? Hur ska man då koppla? Ska picen vara inställd på ingång eller utgång på dom pinnar man sätter encodern på? Och vad gör pullup motstånd?

Edited by - Lash on 2003/03/06 20:06:22
Go to Top of Page

Nagref
Member

113 Posts

Posted - 2003/03/06 :  20:17:46  Show Profile Send Nagref a Private Message
16F84 har pullupmotstånd på alla ben i portB om man nollställer bit 7 i OPTION-registret.

Lash: ingång!
Och pullupmotstånden gör så att när man inte har något kopplat till just det benet så tolkas det som en etta (hög spänning). Pulsgivaren kopplar bara ner mot jord (nolla) eller inte alls (och då blir det en etta av pullupmotstånden som sitter i mikrokontrollern.

Assisterar Holographic Audio och Larsen Hifi
VD för Acoustic Landscape
R&D-ansvarig för Acoustic Illusion
Go to Top of Page

loovet
Member

354 Posts

Posted - 2003/03/06 :  22:03:57  Show Profile  Visit loovet's Homepage Send loovet a Private Message
Nu tror jag att jag börjar att förstå lite... (eller inte)

Om jag använder mig av 16F84 och sätter alla ben i portB med pullupmostdånd och kopplar encoderns ben A mot RB0 och ben B mot RB1. Och sedan använder RB0 som interrupt och sedan bara kollar av RB1 om den är 0 eller 1, i samband med att interrupten aktiveras, borde jag väl kunna utläsa, utifrån värdet på RB1 om jag vrider encodern åt höger eller vänster, eller?


/loovet

// det blev en aleph 1.7 //
Go to Top of Page
Page: of 11 Previous Topic Topic Next Topic  
Previous Page | Next Page
 New Topic  Topic Locked
 Printer Friendly
Jump To:
HiFiForum.nu © HiFiForum.nu except: Logos and Trademarks are property of their owners, Comments are property of their posters Go To Top Of Page
Denna sida genererades på 0.73 sekunder. Snitz Forums 2000