Sida 2 av 3
Postat: 5 oktober 2005, 20:45:33
av Virr3
fattar inte helt de där med schemat men, ska läsa igenom de du skrivit några ggr till så, det löser sig nog...
har fått tag i kontakt och tangentbord...
kontakten kopplar jag:
1 - Data - till valfri pin(?)
2 - Används inte
3 - Jord - Jord
4 - Vcc (+5V) - 5V
5 - Clock - valfri pin(?)
6 - Används inte
sen, klockan och datan fixar jag i koden sen...
det finns en kod på avrfreaks, eller närmarebestämt två stycken som är aningen intressanta...
men(!) den första koden skriver koden i acsii kod och inte till en lcd som jag vill och den andra skickar all kod via USART alltså seriellt, då blir lcd dyrare och mer jobb om jag inte fattat fel?
tror nog att jag ska testa att skriva koden själv iaf... går inte de alls så får ja la ta en redan färdig kod och be er om den hjälp jag behöver...
dock så kanske det blir så att jag skriver en egen kod och kollar hur dom andra gjort om jag får problem...
vad tror ni om de?
sen en sista liten fråga, vilket är det bästa sättet att att föra signaler genom axeln på en motor? eller, från ovansidan av en motor till undersidan och det får inte snurra i undersidan... tror ni fattar vad jag menar...
Edit: det bästa är kanske att fixa så att ps/2 interfacet funkar till en lcd och senare när de funkar så fixar jag så att det kommer upp på ledsnurran.
Är det smartast att göra så tror ni?
Postat: 6 oktober 2005, 05:04:31
av pagge
Jag kom på att man inte behöver skicka data till tangentbordet om man inte vill tända capslock m.fl. lampor. Du kan skippa transistorerna och bara koppla CLK och DATA till 2 input pinnar på uCn. Pull up motstånden kan fortfarande behövas dock.
Hur tar man emot en byte från t.bordet?
Du pollar bara klockpinnen (lr kopplar in den på falling-edge en interrupt pinne) och när klockan går låg samplar du datapinnen.
Så länge datapinnen är hög gör du inget, men är den låg så är det en startbit du ser. Då vet du att datat kommer att komma de följande 8 gånger klockan går låg. Sampla dessa databitar och spara undan i din uC. Du behöver inte göra nåt med paritetsbiten och stopbiten som kommer efter datat, men tänk på att inte missta pariteten för en ny startbit
Kika på "figure2" på
http://www.computer-engineering.org/ps2protocol/
Okej, nu kan du ta emot en byte från tangentbordet.
Anta att du trycker ner och släpper A på tangentbordet. Då kommer du att få tangentens (A) make kod när du trycker ner, och brake kod när du släpper upp. Kikar man itabellen
http://www.computer-engineering.org/ps2 ... odes2.html ser man att make koden för A är 0C, och break koden är F0 0C.
Dvs när du trycker på A kommer du att få 0C, när du släpper den kommer du att få F0 0C. Ska du bara skriva lite text (och inte hålla reda på vilka tangenter som är nertryckt, t.ex shift.) så kan du skita i break koden och bara lyssna på make koderna.
Jag skulle starkt rekomendera att du skriver koden själv, av två anledningar
1: Att få nån annans kod att fungera som man vill är väldigt hemskt. Funkar det inte sitter man där som en fågelholk eftersom man inte har nån koll på vad som sker.
2: Det är inte så hemskt att ta emot PS2 data från ett tangentbord :)
Postat: 6 oktober 2005, 08:05:58
av Virr3
underbart:)
det ska tillenbörjan iaf, vara så enkelt som möjligt... alltså, inga små bokstäver så...
det ska bara va att knappa på tangentbordet, så schift och lampor gör ingen skilnad...
hehe, jag använde int0 till en falling-edge interrupt... men, jag kan använda int1 till de me va? sen undara jag bara...
jag fick aldrig något grepp om vad det va som hände... vad är de som händer med en "falling-edge" interrupt?
Postat: 6 oktober 2005, 08:16:20
av gvs
En sak som är tråkig är att det inte funkar att göra tvärtom på samma enkla sätt (dvs skriva sitt eget tgb och koppla det till en dator). Datorn blir helt knäpp om den inte kan prata med tgb...
Postat: 6 oktober 2005, 08:20:24
av karlstedt
jag fick aldrig något grepp om vad det va som hände... vad är de som händer med en "falling-edge" interrupt?
Det genereras ett "External interrupt" när spänningen på pinnen sjunker från en etta till nolla. Detta medför att interruptet inte skulle genereras vid andra spänningsändringar, tex om pinnen skulle gå från nolla till etta.
Postat: 6 oktober 2005, 08:29:24
av Virr3
The External Interrupts are triggered by the INT0, INT1, and INT2 pins. Observe that, if enabled, the interrupts will trigger even if the INT0..2 pins are configured as outputs.
så står de i den översta raden i databladet om "External interrupt"... tolkar jag det helt fel ifall det inte funkar riktigt att ha två olika...
alltså, jag använder INT0 till att trigga varven te ledsnurran...
Postat: 6 oktober 2005, 11:22:04
av karlstedt
Inte säker på att jag förstår frågan riktigt men jag chansar på att du vill ha svar på detta:
Ja, du kan använda tre olika interrupt på tre respektive portpinnar. Olika interruptvektorer kommer att köras beroende på vilken pinne som genererar interruptet. Dessa tre interrupt är "oberoende" av varandra.
Postat: 6 oktober 2005, 11:56:30
av pagge
"The External Interrupts are triggered by the INT0, INT1, and INT2 pins. Observe that, if enabled, the interrupts will trigger even if the INT0..2 pins are configured as outputs. "
Vad den raden vill säga är att interrupten genereras oavsett om det är en extern källa som påverka pinnen (då den är som ingång) eller om du konfigurerar pinnen som utgång och påverkar dess värde i mjukvara.
Detta kan användas för att generera mjukvaruinterrupts om man skulle vilja.
Postat: 6 oktober 2005, 14:48:18
av Virr3
okej...
hur ska ja koppla?
1 - Data - till valfri pin(?)
2 - Används inte
3 - Jord - Jord
4 - Vcc (+5V) - 5V
5 - Clock - valfri pin(?)
6 - Används inte
en mellan valfri pin till INT1?
nu vart de dax att inhandla en lcd, vilket styrchip är smidigast? och vart hittar man dom billigt?
Postat: 6 oktober 2005, 18:19:36
av pagge
clock kopplar du lämpligen till nån av INT pinnarna så du kan trigga på fallande flank.
Glöm ej att dra pull up motstånden på 1k-10k (enl sidan.) från Data till 5V och Clock till 5V
Postat: 6 oktober 2005, 22:04:31
av Virr3
okej, super
sen tar ja å beställer en sån
LCD
den är okej eller?
Postat: 7 oktober 2005, 08:41:03
av pagge
Verkar vara 8 bitars parallellt interface till den, så det blir ju några pinnar att dra från uC'n. Stod inget i databladet om hur man skickar data till den, kan vara ide att kolla upp hur man gör innan du beställer så du inte sitter med en display du inte vet hur man använder när den kommer :)
Jag har infört som grundprincip i alla mina nya byggen att aldrig köpa komponenter förän layouten är klar och det är dags att etsa kretskort.
Då beställer man komponenterna och går och sover. Nästa dag tittar man på layouten, och tycker man då fortfarande att man är klar så går man å etsar. Sen bygger jag ihop saken när grejjerna kommit :). Jag införde principen efter att jag tittat på mitt berg av BAH (bra att ha) saker jag skaffat under åren men aldrig orkat bygga ihop helt =).
Postat: 7 oktober 2005, 13:08:25
av Virr3
ne, det är sant de du säjer...
är i de stadiet att jag har skaffat kontaktdon å tangentbord å den historian, så nu är det bara en display kvar te de att jag kan börja testa med kod... har inte börjat koda än, kanske kan börja lite smått
tanken var att börja att göra ett ps2 - lcd interface å sen implantera ledsnurran i de då... eller ska jag göra så att de kommer upp på ledsnurran direkt?
vet du vart man kan köpa någon hyffsat billig display? med ett styrchip som är använt, alltså att det finns mycket information om de...
Postat: 8 oktober 2005, 13:48:54
av pagge
Displayer är inget jag petat med alls, men lawicel har några som verkar hyffsat billiga och samtidigt hade lite utförligare datablad
http://www.lawicel-shop.se/shop/
Postat: 8 oktober 2005, 13:58:39
av Virr3
den oled displayen där som dom hade för extrapris:)
det är samma styrchip så det borde gå att läsa av databladet från en lcd med HD44780?
eller har jag helt fel nu eller?