Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

klavesnice
Jdi na stránku 1, 2  Další
 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
teo



Založen: Oct 26, 2008
Příspěvky: 51

PříspěvekZaslal: st březen 11 2009, 8:15    Předmět: klavesnice Citovat

Netušítě někdo jak se dá ovládat tato klávesnice?
http://www.ges.cz/?ipp=12&lang=cz&cur=CZK&or=sort&page=index&of=1&gcat=XAG&inc=detail&gesid=GES06503821

resp mám to připojené na Atmel a nevím jak zjistit že je něco zmačknuto . . .
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
GeorgeB



Založen: Nov 21, 2005
Příspěvky: 1216
Bydliště: Pardubice

PříspěvekZaslal: st březen 11 2009, 8:35    Předmět: Citovat

Tak zvaná maticová klávesnice.
Info ohledně snímání z klávesnice například zde: http://programujte.com/index.php?akce=clanek&cl=2007012602-obsluha-maticove-klavesnice-3x4-tlacitka-asm51-jednochipem nebo například zde: http://dhservis.cz/dalsi_1/klavesnice.htm
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
BOBOBO



Založen: Feb 25, 2008
Příspěvky: 18692
Bydliště: Rychnovsko

PříspěvekZaslal: st březen 11 2009, 8:42    Předmět: Citovat

Našel jsem toto .


DSC00522.JPG
 Komentář:

Stáhnout
 Soubor:  DSC00522.JPG
 Velikost:  161.11 kB
 Staženo:  74 krát


DSC00523.JPG
 Komentář:

Stáhnout
 Soubor:  DSC00523.JPG
 Velikost:  153.41 kB
 Staženo:  76 krát

Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Crifodo



Založen: Oct 11, 2005
Příspěvky: 15005

PříspěvekZaslal: st březen 11 2009, 10:59    Předmět: Citovat

teo napsal(a):

mám to připojené na Atmel a nevím jak zjistit že je něco zmačknuto . . .


nepřeskočil jsi nějakou vývojovou větev? Twisted Evil
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
teo



Založen: Oct 26, 2008
Příspěvky: 51

PříspěvekZaslal: st březen 11 2009, 13:08    Předmět: Citovat

tak já mám klavesnici připojenou přímo na P1.0 až P1.6.šlo by to zprovoznit asi nějak takto?
kód:

int stisknuto;
P1=0x7F;
if(P1==0x6F){
                   stisknuto=3;
                   goto exit;
                   }
if(P1==0x5F){
                   stisknuto=6;
                   goto exit;
                   }

a tak dale by to pokracovalo podobne. . .
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Andrea



Založen: Sep 07, 2007
Příspěvky: 9340

PříspěvekZaslal: st březen 11 2009, 14:11    Předmět: Citovat

teo napsal(a):
tak já mám klavesnici připojenou přímo na P1.0 až P1.6.šlo by to zprovoznit asi nějak takto?
kód:

int stisknuto;
P1=0x7F;
if(P1==0x6F){
                   stisknuto=3;
                   goto exit;
                   }
if(P1==0x5F){
                   stisknuto=6;
                   goto exit;
                   }

a tak dale by to pokracovalo podobne. . .

Nešlo.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
bohous1
Neregistrovaný





PříspěvekZaslal: st březen 11 2009, 14:56    Předmět: Citovat

Pokud budete mit tu klavesnici na jednom jedinem portu (registry DDRx a portx), tak
nejdrive musite nastavit cast portu jako vstupni a druhou jako vystupni s popotazenim do H. Pak budete cist registr PINx a maskovat pouze prislusne vstupni porty a da vam to vysledek.

Nezapomenout osetrit zakmity.

Pohodlne se to resi u nekterych AVR osetrenim preruseni od zmeny stavu portu.
Návrat nahoru
endthe



Založen: Mar 07, 2009
Příspěvky: 56
Bydliště: Brno

PříspěvekZaslal: st březen 18 2009, 23:30    Předmět: Citovat

no ja bych tu klavesnici resil takto ( v mem pripade 4x4) na 4 portech se rotuje 0 a na dalsich 4 se snima vysledek:
kód:

//definice portu klavesnice

DDRE=0x0F;
PORTE=0x0F;
while(1)
{
            //prvni sloupec
                PORTE =0b00001110;

//1
                if (bit_is_clear(PINE, 4)) ;
//4
                if (bit_is_clear(PINE, 5)) ;
//7
                if (bit_is_clear(PINE, 6)) ;
//*
                if (bit_is_clear(PINE, 7)) ;


                //druhy sloupec

                PORTE =0b00001101;
//2
                if (bit_is_clear(PINE, 4)) ;
//5
                if (bit_is_clear(PINE, 5)) ;
//8
                if (bit_is_clear(PINE, 6)) ;
//0
                if (bit_is_clear(PINE, 7)) ;

                //treti sloupec

                PORTE =0b00001011;
//3
                if (bit_is_clear(PINE, 4)) ;
//6
                if (bit_is_clear(PINE, 5)) ;
//9
                if (bit_is_clear(PINE, 6)) ;
//#
                if (bit_is_clear(PINE, 7)) ;


                //ctvrty sloupec

                PORTE =0b00000111;
//ESC
                if (bit_is_clear(PINE, 4)) ;
//F1
                if (bit_is_clear(PINE, 5)) manual();
//F2
                if (bit_is_clear(PINE, 6)) ;
//ENTER
                if (bit_is_clear(PINE, 7)) ;
               
}
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
teo



Založen: Oct 26, 2008
Příspěvky: 51

PříspěvekZaslal: út březen 24 2009, 12:06    Předmět: Citovat

já jsem to naprogramoval podobně,ale nefunguje to.Rotuju taky 0 a pak testuju.
kód:

kl_start:
//1radek
P1=0x0E;
a=P1;
if(a==0xEE)
            {
              stisknuto=7;
              goto exit;
            }
if(a==0xDE)
            {
            stisknuto=8;
            goto exit;
            }
if(a==0xBE)
            {
            stisknuto=9;
            goto exit;
            }
//2radek
P1=0x0D;
a=P1;
if(a==0xED)
            {
            stisknuto=4;
            goto exit;
            }
if(a==0xDD)
            {
            stisknuto=5;
            goto exit;
            }
if(a==0xBD)
            {
            stisknuto=6;
            goto exit;
            }
//3radek
P1=0x0B;
a=P1;
if(a==0xEB)
            {
            stisknuto=1;
            goto exit;
            }
if(a==0xDB)
            {
            stisknuto=2;
            goto exit;
            }
if(a==0xBB)
            {
            stisknuto=3;
            goto exit;
            }
//4radek
P1=0x07;
a=P1;
if(a==0xE7)
            {
            stisknuto=11;//shift
            goto exit;
            }
if(a==0xD7)
            {
            stisknuto=0;
            goto exit;
            }
if(a==0xB7)
            {
            stisknuto=12;//ok
            goto exit;
            }
goto kl_start;
exit:
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
jano80



Založen: Nov 16, 2008
Příspěvky: 73
Bydliště: Michalovce

PříspěvekZaslal: út červen 02 2009, 11:49    Předmět: Citovat

nieco jednoduchsie (menej pisania) =)

kód:

/*

klavesnica 3x4 tl.


PD0-------|
PD1----|  |
PD2-|  |  |
    |  |  |
    |  |  |
PD3-1--2--3
PD4-4--5--6
PD5-7--8--9
PD6-10-11-12

*/

#include <avr/io.h>
#include <util/delay.h>

unsigned char r,s;
unsigned char klavesa;



int main()
{

DDRB = 0XFF;   //PORTB nastaveny ako vystup
while(1)

{
   DDRD = 0X07; // DDRD 0,1,2 nastavene ako vystup v (log "0)
   PORTD = 0X78;// k PORTD 3,4,5,6 pripojene pull up
   
   if (bit_is_clear(PIND,3)) r=1;
   if (bit_is_clear(PIND,4)) r=4;
   if (bit_is_clear(PIND,5)) r=7;
   if (bit_is_clear(PIND,6)) r=10;
   
   _delay_us(50);//ustalenie portu

   DDRD = 0X78;// DDRD 3,4,5,6 nastavene ako vystup v (log "0")
   PORTD = 0X07;// k PORTD 0,1,2 pripojene pull up
   if (bit_is_clear(PIND,0)) s=2;
   if (bit_is_clear(PIND,1)) s=1;
   if (bit_is_clear(PIND,2)) s=0;
   
   
   klavesa = s+r; //spocita riadok + stlpec
   PORTB = klavesa;// vystup na port


}

};
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Andrea



Založen: Sep 07, 2007
Příspěvky: 9340

PříspěvekZaslal: út červen 02 2009, 11:55    Předmět: Citovat

jano80 napsal(a):
nieco jednoduchsie (menej pisania) =)

A k čemu je tam tahle řádka?
kód:
   _delay_us(50);//ustalenie portu
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
jano80



Založen: Nov 16, 2008
Příspěvky: 73
Bydliště: Michalovce

PříspěvekZaslal: út červen 02 2009, 12:00    Předmět: Citovat

50 us ustalenie portu (bez toho to blbne zrejeme pomaly port)
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Andrea



Založen: Sep 07, 2007
Příspěvky: 9340

PříspěvekZaslal: út červen 02 2009, 12:02    Předmět: Citovat

jano80 napsal(a):
50 us ustalenie portu (bez toho to blbne zrejeme pomaly port)

A kterého portu?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
jano80



Založen: Nov 16, 2008
Příspěvky: 73
Bydliště: Michalovce

PříspěvekZaslal: út červen 02 2009, 12:04    Předmět: Citovat

PORTD, vid. priklad...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Andrea



Založen: Sep 07, 2007
Příspěvky: 9340

PříspěvekZaslal: út červen 02 2009, 12:21    Předmět: Citovat

A jaký to má smysl, čekat 50us na ustálení portu, když se jeho stav následujícím příkazem mění?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů Časy uváděny v GMT + 1 hodina
Jdi na stránku 1, 2  Další
Strana 1 z 2

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra.
Nemůžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Nemůžete připojovat soubory k příspěvkům
Můžete stahovat a prohlížet přiložené soubory

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.42 sekund