PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Warum klappt das nicht!



Philsuro
28.12.2010, 16:15
Hallo

Weiß einer von euch warum das nicht klappt es soll einfach wenn ich auf T1 drücke o hochzählen und im Display anzeigen!

und wenn ich auf T2 drücke soll p einen schritt hochzählen und dass wieder im display anzeigen!

Hier der Code :


#include "RP6ControlLib.h"
int main(void)
{
initRP6Control();
initLCD();


showScreenLCD("################", "################");
mSleep(1900);
showScreenLCD("<<RP6 Control>>", "<<LC - DISPLAY>>");
mSleep(2900);
showScreenLCD(" Demo ", " Zähler ");
mSleep(2900);
clearLCD();

setLEDs(0b111111);
mSleep(500);
setLEDs(0b000000);




uint8_t o = 0;
uint8_t i = 0;
uint8_t p = 0;
while(i < 1) {

setCursorPosLCD(0, 0);
writeStringLCD_P("1: ");
setCursorPosLCD(1, 0);
writeStringLCD_P("2: ");

if(key)
{


uint16_t key_adc = readADC(ADC_KEYPAD);




while(getPressedKeyNumber());
{

switch(key)
{
case 1:

setCursorPosLCD(0, 9);
writeIntegerLCD(o, DEC);
writeStringLCD_P(" ");
o++;

break;

case 2:
setCursorPosLCD(1, 9);
writeIntegerLCD(o, DEC);
writeStringLCD_P(" ");
p++;
break;
}


}
return 0;
}








mfg Philip \:D/ [/code]

Fabian E.
28.12.2010, 17:17
Was klappt denn nicht?
Der Code hier dürfte noch nicht mal den Compiler überstehen...

Dasive
28.12.2010, 17:17
Keine Ahnung, müsstest du nicht vor der Ausgabe hochzählen?

PS: Dein Titel ist eine totale Katastrophe!

Fabian E.
28.12.2010, 17:24
Hier mal ein paar Kommentare zum Code:


#include "RP6ControlLib.h"
int main(void)
{
initRP6Control();
initLCD();

showScreenLCD("################", "################");
mSleep(1900);
showScreenLCD("<<RP6 Control>>", "<<LC - DISPLAY>>");
mSleep(2900);
showScreenLCD(" Demo ", " Zähler ");
mSleep(2900);
clearLCD();

setLEDs(0b111111);
mSleep(500);
setLEDs(0b000000);
uint8_t o = 0;
uint8_t i = 0;
uint8_t p = 0;
while(i < 1) //Das soll wohl eine Endlosschleife sein? nimm doch while(true)
{
setCursorPosLCD(0, 0);
writeStringLCD_P("1: ");
setCursorPosLCD(1, 0);
writeStringLCD_P("2: ");

if(key) //Wo kommt diese Variable her?
{
uint16_t key_adc = readADC(ADC_KEYPAD); //Wozu machst du das? Du verwendest diese Variable nicht mehr...

while(getPressedKeyNumber()); //Solange eine Taste gedrückt ist?
{
switch(key) //Wieder diese ominöse Variable
{
case 1:
setCursorPosLCD(0, 9);
writeIntegerLCD(o, DEC);
writeStringLCD_P(" ");
o++;
break;

case 2:
setCursorPosLCD(1, 9);
writeIntegerLCD(o, DEC);
writeStringLCD_P(" ");
p++;
break;
}

}
return 0;
}
//Hier würden jetzt noch zwei "}" fehlen...

Philsuro
28.12.2010, 18:02
Wie macht man dass denn?

Dasive
28.12.2010, 18:35
Tut mir leid, ICH kann dir nicht weiterhelfen :(

Philsuro
28.12.2010, 18:45
Tut mir leid, ICH kann dir nicht weiterhelfen :(

Kann mir denn einer sagen wie das geht, habe nichts gefunden!

shedepe
28.12.2010, 19:02
Also vom allgemeinen Vorgehen her:

1. Initialisieren des RP6
2. Variablen p und o anlegen und initialieren
3. Endlos schleife und in der:
3.1 Taster Abfragen --> Bei entsprechendem Taster p bzw. o hochzählen
3.2 p und o auf das Display bzw. über die serielle Schnittstelle ausgeben

Philsuro
28.12.2010, 22:36
Also vom allgemeinen Vorgehen her:

1. Initialisieren des RP6
2. Variablen p und o anlegen und initialieren
3. Endlos schleife und in der:
3.1 Taster Abfragen --> Bei entsprechendem Taster p bzw. o hochzählen
3.2 p und o auf das Display bzw. über die serielle Schnittstelle ausgeben

3.1 -> Wie?

Fabian E.
28.12.2010, 23:03
Das steht doch alles in der Anleitung zur M32.

Richard
29.12.2010, 01:56
Wie macht man dass denn?

http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
"Vorkauen" oder fertige Programme liefern macht hier kaum jemand. Einfach weil Du daraus nichts lernen kannst. In der Bedienungsanleitung sind Beispiele zum ausprobieren, die solltest Du erst einmal verstehen lernen.

Gruß Richard