Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Probleme mit SW1 & SW2 Kategorie: CC-Pro Unit & Appl.Board (von KlausS, http://www.poisonbytes.de - 3.04.2009 15:35)
Ich nutze:
C-Control Pro Mega128, CC-Pro 128 Application Board
Hallo Zusammen

Ich habe seit einigen Tagen mein C-Control Mega 128 inclusive Application Board und versuche mich gerade
ein wenig damit vertraut zu machen.
Ich komme aus dem Informatik bereich, der Programmier part macht bisher keine grö�eren Probleme,
allerdings ist mir beim Hardware bereich noch nicht alles ganz klar.

Als kleinen test wollte ich ein Programm schreiben das mir die zustände der Schalter SW1 und SW2
auf dem Display ausgibt.

Für SW1 funktioniert das prima, allsdings macht mir SW2 ein wenig Probleme.
Ich nutze den unten angehängten Code

Ist keine Taste gedrück erscheint wie gewünscht in der ersten und zweiten Zeile eine 1.
Drücke ich nun SW1 erscheint in der ersten Zweile wie gewünscht die 0
Alelrdings ebenso in der zweiten Zeile, allerdings flackert die ab und an und es ist nich immer klar zu
erkennen ob jetzt eine 1 oder eine 0 dargestellt werden soll.
Gehe ich per debugger durch das Programm sehe ich das Port_ReadBit(PORT_SW2) immer mal wieder 0
zurück gibt obwohl SW2 nicht gedrückt wird.

Drücke ich nun SW2 wird der wert für SW1 richtig ausgelesen. Für SW2 zunächst auch. allerdings wird
nach dem loslassen von SW2 noch für etwa 2 Sekunden 0 ausgelesen.

mache ich einen Grundlegenden Fehler oder Spinnt mein Application Board irgendwie an der Stelle?

Ein weiteres problem ist, dass wenn ich das Board ohne USB betreibe, Programme erst nach dem
Drücken von RESET1 gestarted werden.

Bin für jede Hilfe dankbar

Grü�e
Klaus


byte schalter1;
byte schalter2;
void main(void)
{
    Port_DataDirBit(PORT_SW1,PORT_IN);
    Port_DataDirBit(PORT_SW2,PORT_IN);
    LCD_Init();
    LCD_ClearLCD();
    LCD_CursorOff();
    while(true)
    {
         schalter1 = Port_ReadBit(PORT_SW1);
         if(schalter1==0)
         {
                LCD_CursorPos(0x00);
                LCD_WriteChar(48);
         }
         else
         {
                LCD_CursorPos(0x00);
                LCD_WriteChar(49);
         }
         schalter2 = Port_ReadBit(PORT_SW2);
         if(schalter2==0)
         {
                LCD_CursorPos(0x40);
                LCD_WriteChar(48);
         }
         else
         {
                LCD_CursorPos(0x40);
                LCD_WriteChar(49);
         }
    }
}

Meine Seite: http://www.poisonbytes.de


    Antwort schreiben


Antworten:

Re: Probleme mit SW1 & SW2 (von PeterS - 3.04.2009 19:56)
    Re: Probleme mit SW1 & SW2 (von KlausS - 4.04.2009 12:26)