matrix klavier inlezen in bascomAVR

Dit topic is gesloten

een vraagje voor alle Bascom specialisten,

Er zijn honderden voorbeeldprogramma's op het net te vinden voor een 3 X 4 of een 4 X 4 klaviertje, maar hoe zit het dan als je een groter klavier hebt waar je twee poorten voor nodig hebt?
gewoonlijk wordt in bascomAVR "getkbd()) gebruikt, maar kan dat ook als je op twee poorten werkt? vb D.0 tot D.6 = kol 1 tot 7 / C.0 tot C.2 = row 1 tot 3 (in mijn geval) ik heb een klaviertje 3X7 ???

om het kort te maken, ik wil dat klaviertje inlezen, ik heb poort D(8bits) en poort C (7bits) ter beschikking op een Atmega 88 (168).
De keuze voor deze µP is omdat alle pinnen kunnen gebruikt worden als interrupt. Weet niet of dat belangrijk is. heb ook nog enkele Atmega 16 en 32 op voorraad (Waar ik meestal mee werk).

Kan iemand mij een beetje op weg helpen aub, liefst met een voorbeeldprogrammatje want van echt zelf programmeren heb ik nog niet zoveel verstand. Ik probeer de voorbeeld programmatjes te begrijpen en te doorgronden maar om er dan zelf op eigen houtje iets anders van te maken lukt me nog niet. oefening baart kunst zegt men wel maar een klein handje hulp kan wonderen doen soms.

voor een 4X4 keypad gebruik ik volgende;

$regfile88def.dat
$crystal 8000000
$hwstach = 32
$swstack = 10
$framesize = 40

config lcdpin = pin, DB4=port B2,DB5=port B3,DB6=port B4,DB7=port B5,e=portB1,rs=port B0
config lcdbus = 4
config lcd = 16*1
cursor off

config Kbd = port D

Dim B as byte

do
B = Getkbd()
locate 1,1
lcd B
loop
end

Hartelijk dank bij voorbaat,
Geert

Volgens lezen kun je met Getkbd() enkel een 4x4 toetsenbord gebruiken.
Je zult zelf een volledig scan programma moeten schrijven aangepast aan uw toetsenbord.

Hier heb je een idee hoe je dat kunt doen of eventueel uitbreiden.

Ik zou ook zoals in de link kiezen om voor het toetsenbord een aparte controller te gebruiken, dat maakt het ook makkelijker om de code voor verschillende toestellen te gebruiken.

LDmicro user.
Arco

Special Member

Handig een nieuw topic, kunnen we weer opnieuw beginnen...
Beter hier verder: https://www.circuitsonline.net/forum/view/139018

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
klein is fijn

Moderator

In dat geval gaan we daar verder.

Dit topic is gesloten