Hallo Leute,
Ich möchte mir gerne für einen Arcade-Controllereigenbau einen AVR programmieren der mir nach belieben die Tastenzuordnung ändern kann.
Insgesammt sollen jeweils 6 Tasten geschalten werden.
Hierfür dachte ich mir sollte ein ATMEGA8 ausreichen.
Denkt ihr wäre sowas eher in C oder BASCOM einfacher zu realisieren?
Zusätzlich soll mittels einem Taster zwischen den einzelnen Konfigurationen weitergeschalten werden können, die dann am Segment-Display angezeigt werden (1-9)
In C hab ich bis jetzt folgendes zusammengebastelt:
Weitere komme ich leider nicht da meine Kenntnisse nicht ausreichen.
Nachtrag:
Kann es sein das man absolut nichts über Ansteuerung einer 7-Segment Anzeige im Internet findet?
Weder in BASCOM, noch in C?
Ich möchte mir gerne für einen Arcade-Controllereigenbau einen AVR programmieren der mir nach belieben die Tastenzuordnung ändern kann.
Insgesammt sollen jeweils 6 Tasten geschalten werden.
Hierfür dachte ich mir sollte ein ATMEGA8 ausreichen.
Denkt ihr wäre sowas eher in C oder BASCOM einfacher zu realisieren?
Zusätzlich soll mittels einem Taster zwischen den einzelnen Konfigurationen weitergeschalten werden können, die dann am Segment-Display angezeigt werden (1-9)
In C hab ich bis jetzt folgendes zusammengebastelt:
Code:
//----------------------------------------
// Titel : Arcade Tastenprogrammierung
//----------------------------------------
#include <avr/io.h>
typedef unsigned char BYTE;
typedef unsigned int WORD;
BYTE bPortC;
BYTE nKeyPress;
int main (void)
{
PORTC = 0x01; // Pull-Up auf Port D, Pin 0 aktivieren
DDRD = 0x00; // Port D als Eingang
DDRB = 0xFF; // Port B als Ausgang
bPortC = 1; // Variable initialisieren
nKeyPress = 1;
while(1)
{
Auswahl();
if ((nKeyPress) == 1) Konf1();
if ((nKeyPress) == 2) Konf2();
if ((nKeyPress) == 3) Konf3();
}
return 0;
}
void Auswahl(void)
{
if (bit_is_clear (PINC, PINC0))
{
if (bPortC)
{
nKeyPress++;
bPortC = 0;
}
}
else
{
bPortC = 1;
}
}
void Konf1(void)
{
PORTC.0 = PORTD.0
PORTC.1 = PORTD.1
PORTC.2 = PORTD.2
PORTC.3 = PORTD.3
PORTC.4 = PORTD.4
PORTC.5 = PORTD.5
}
void Konf2(void)
{
PORTC.0 = PORTD.2
PORTC.1 = PORTD.3
PORTC.2 = PORTD.4
PORTC.3 = PORTD.5
PORTC.4 = PORTD.0
PORTC.5 = PORTD.1
}
void Konf3(void)
{
PORTC0 = PIND5;
PORTC1 = PIND4;
PORTC2 = PIND3;
PORTC3 = PIND2;
PORTC4 = PIND1;
PORTC5 = PIND0;
}
Weitere komme ich leider nicht da meine Kenntnisse nicht ausreichen.
Nachtrag:
Kann es sein das man absolut nichts über Ansteuerung einer 7-Segment Anzeige im Internet findet?
Weder in BASCOM, noch in C?