Beiträge anzeigen

Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.


Nachrichten - NANOcoder

Seiten: [1]
1
Lowlevel-Coding / Re:getc , Tastaturtreiber
« am: 25. April 2011, 14:22 »
hey also das \0 muss rein um den string ordenlich zu beenden , das habe ich verstanden. jedoch vorher soll "else"  erkennen das ich jetzt Enter drücke. Das muss ich doch noch definieren, oder nicht ?

NANOcoder
2
Lowlevel-Coding / Re:getc , Tastaturtreiber
« am: 25. April 2011, 01:04 »
Hallo wieder,

war ne zeit lang nicht online wegen schulische sache  Prüfung etc . ;)

Naja ich hab  versuhct was ihr sagt nun es klappt immer noch nicht jedoch  bin ich überzeugt es liegt an den rückgabewert von getc hab aber keine idee wie ich es nun lösen soll. Wenn ich nur getc() laufe und den char wiedergben der eingelesen wurde wird auf den bildschrim eine zeile übersprüngen für die normale ENTER eingabe und ein zweites mal durch die wiedergabe die ja durch getc() gelesen wurde. Nun es hieß ich soll
 buf[index]='\0';   hinter dem else machen. Aber muss ich nicht ein \n machen und ein \0 hinten dran schreiben als zusätzlichen argument ? Ich arbeite mit scancodes um evtl.  Missverständisse zu beseitigen ^^ Sry wenn ich immer in so großen zeitabschnitten schreibe.

NANOcoder
3
Lowlevel-Coding / Re:getc , Tastaturtreiber
« am: 01. March 2011, 21:04 »
Also die getc()-funktion geht hab ich schon mehrmals ausprobiert, die funktion sollte funzen da ich ,wie gesagt, sie schon mit einzelnen zeichen 1 oder a probiert habe und dann noch eine restart funktion gemacht habe , hat super geklappt also daran sollte es nicht liegen.

Also die strcmp war mir auch erst spontan eingefallen und hab mir auch überlegt das sie ja "erst" mal ausreichen sollte. Bei mir dauert das immer ein wenig bis sich da was verändert und fällt mir immer spontan ein das umgeändert werden muss :-D

Ich werde das ganze noch mal ausprobieren und austesten ich werde mich dann melden.


Danke noch mal für die schnellen Antworten  :wink:
4
Lowlevel-Coding / Re:getc , Tastaturtreiber
« am: 28. February 2011, 20:36 »
upps ^^ naja ich habs auch mit 0-terminiert und funtz auch net das war halt so als ich das wieder umgeändert hatte aus irgendein grund ^^

Und die restart()-funktion funktioniert einwandfrei wenn ich sie mit ner ganz einfachen if-schleife vergleiche mit ner nummer wie z.b. 1 oder 'a'
 prob is jetzt nur strings und nach einem ENTER ^^ Ich bin noch mal selbst am nachschauen wo der fehler liegt aber bis jetzt habe ich keine idee. Hoffentlich ist das nicht so nen hässlicher kleiner fehler ;)
 
Grüße
NANOcoder
5
Lowlevel-Coding / Re:getc , Tastaturtreiber
« am: 28. February 2011, 20:06 »
Hallo mal wieder ^^,

Ich hab mal in meiner main.c den code von svenska laufen lassen als Test um zu schauen ob es überhaupt funtz mit meiner strcmp funktion jedoch passiert da rein gar nichts :(
Hier meine strcmp funktion:

...

int strcmp(char* string1, char* string2)
{
      int i = 0;
      int fail = 0;
      while(string1[i] != '\0' && string2[i] != '\0')
      {
          if(string1[i] != string2[i])
          {
              fail = 1;
              break;
          }
          i++;
      }
     
      if( (string1[i] == '\0' && string2[i] != '\0') || (string1[i] != '\0' && string2[i] == '\0') )
          fail = 1;
 
      return fail;
}

...


dann in der main.c :

...

char buf[25], tmp; int index=0;
char reb[] = {'r','e','s','t','a','r','t'};

for(;;)
{

while( index < 25 )
{
    tmp = getc();

    if ( (tmp != 13) && (tmp != 10) )
    {
        buf[index] = tmp;
        index++;
    }
    else
     {
        break;
     }

}

    if ( strcmp(buf,reb) == 0 )
    {
   
    restart();
    }

   //if(...)
   //{
   //...
   //}

}

...

Wie gesagt um zu sehen ob es überhaupt funktioniert hab ich das mal das so improvisiert.

Wenn ich jetzt das laufen lasse mittels VirtualBox kann ich zwar wie gewohnt meine schönen Buchstaben am Bildschirm tippen jedoch passiert nicht wenn ich z.B restart eingebe , muss ich da villt so was wie nen "volatile" deklarieren ?

Oder es liegt an meiner strcmp-funktion, wobei ich die tausend mal durch gechekt habe.
Wenn das dann funtz will ich es so umschreiben das wenn man nen fehler macht das noch verbessern kann und schließlich dann ENTER-drückt um die strings dann zu vergleichen.

NANOcoder
6
Lowlevel-Coding / Re:getc , Tastaturtreiber
« am: 14. February 2011, 12:19 »
theoretisch müsste ich ja den bei einer entfern-Taste oder backspace ein zeichen aus dem string herauslöschen udn diesen dann wieder neu rein schreiben in den string.

NANOcoder
7
Lowlevel-Coding / Re:getc , Tastaturtreiber
« am: 13. February 2011, 19:49 »
hey danke für die infos muss nur noch zeit finden das alles zu machen hab auch schon ne idee wie ich es ungefähr mache ;)

8
Lowlevel-Coding / Re:getc , Tastaturtreiber
« am: 13. February 2011, 10:50 »
hey danke für die schnellen antworten ^^

das heist ich mach ne vari char als array und als ENTER muss ich ein NUllbyte am ende des strings rein schreiben.

@erik.vikinger
also eine globale  variabel steht schon da ich ja schon einzelne zeichen einlesen kann nur mit mit ENTER prob muss ich noch mal ausprobieren ^^

@all
danke schon mal ich werd mich schonmal damit auseinder setzten und mal nen wenig coden  :-D

NANOcoder
9
Lowlevel-Coding / Re:getc , Tastaturtreiber
« am: 13. February 2011, 01:12 »
naja was heist will ^^ also ich will ne getc funktion  es gibt zwar mehrere die schon erklärt sind auch hier im forum aber wie bekomme ich das hin das er die zeichen bzw. später dann strings erst nach ENTER "liest" da ich momentan eine globale variabel habe die gespeichert wird und in in die getc funktion übergeben wird. Später will ich dann befehle eingeben können um systembefehle wie "reboot" . Nun weiß ich nicht wie ich das mit dem ENTEr tastendruck regeln soll .

Sagen wir nen einfaches beispiel ich hab ne einfache if schleife und wenn ich 0 drücke dann soll der pc herunterfahren bei mir ist das momentan so, sobald ich die 0 drücke rebootet das system automatisch aber nicht nach einem ENTER wie man es von alten C Konsolenprogs gewohnt ist xD
10
Lowlevel-Coding / getc , Tastaturtreiber
« am: 12. February 2011, 23:53 »
Guden allezusammen  ^^

Ich bin recht neu hier und ist mein erster Beitrag.

Wie das Theme schon heist getc und Tastaturtreiber.
Ich steh grad vor dem Problem eine funktion zu schreiben um Buchstaben oder überhaupt erst mal zeichen einzulesen nach einem ENTER tastendruck. Ich hab zwar ähnliche dinge in sufu gesehen aber nichts richtiges gefunden und wenn doch tut mir leid das ich nicht gefunden haben ;)

Also ich kann zwar zeichen einlesen und diese dann in der main vergleichen aber wie kann ich eine "scanf()" ähnliche funktion schrieben die erst nach einem ENTER druck auch einliest ? Da wenn ich eine einfache if vergleich mache dann liest er sofort den buchstabe bei Tastendruck.

Theoretisch dachte ich das ich da was bei den Interrupts machen muss aber ich weiß nicht wie genau das gehen soll auch habe ich mehrere tuts durch gelesen wo zwar der code steht aber nicht wie das genau funktioniert, denn ich will ja keine codes schnurren oder einfach nur kopieren  :-D

Ich hoffe ihr konntet verstehen was ich meine und wollte noch mal sagen das ich jetzt keinen Code-Schnipsel von jeden möchte um den einfahc nur copy-paste mache . Theoretische Iden reichen mir erst mal aus

danke schon mal für ein paar theoretische Anregungen ^^

Seiten: [1]

Einloggen