ARM SAMD21

ARM fuer Einsteiger

ARM SAMD21

Postby berndboemer » Wed Jul 29, 2015 1:14 pm

Hallo Viacheslav,
ich habe es dank des Kurses geschafft, diverse andere Module an das Board anzuschließen.
Ich möchte einen schnellen Datenlogger bauen, wo ich auch schon auf gutem Wege bin.
Das speichern auf USB Chip funktoniert schon prima, genau so das per ext. Interrupt ausgelöste Einlesen des Dummy Ad-Wandlers über SPI Port.
Der Zustand wird auf einem DOGMXL Display was über SPI Port angeschlossen ist , angezeigt.
JETZT DAS PROBLEM:
Schreibe ich auf das Display : ' sprintf(buf, "%f", auslesewert);
lcd_writeText(x,y,buf);
passiert nichts. Nehme ich %d kann ich jede andere Zahl darstellen.
Der ARMGCC kennt wohl kein printf float...
Die ARM Toolchain ist die 4.8.1443.
Gibt es da ein Update oder was kann ich machen..
Hast Du eine Idee?
Gruß
Bernd
berndboemer
 
Posts: 2
Joined: Wed Jul 29, 2015 12:50 pm

Re: ARM SAMD21

Postby slagromo » Thu Aug 13, 2015 5:07 am

Hallo Bernd,

das ist genau der Grund wieso in der 5. Folge im ADC-Projekt ich die Float-Umwandlung vermieden habe. Ich habe alle Zeichen vor das Komma geschoben und dann eine normale Int-Umwandlung mit sprintf gemacht. Im Nachhinein habe ich bei der Ausgabe am UART das Komma an der richtigen Stelle hinzugefügt:

Code: Select all
      temperature_result = temperature * 100;   
      sprintf(temperature_buffer, "%d", temperature_result);    //reformat the result in a buffer
      for(i = 0; i < 4; i++){                                  //send the temperature on uart
         if((temperature_result >= 1000) && (i == 2)){while(usart_write_wait(&usart_instance, 44) != STATUS_OK){}} //make a comma
         if((temperature_result < 1000) && (i == 1)){while(usart_write_wait(&usart_instance, 44) != STATUS_OK){}}
          while(usart_write_wait(&usart_instance, temperature_buffer[i]) != STATUS_OK){}  //send a digit on uart
         if(i == 3){while(usart_write_wait(&usart_instance, 10) != STATUS_OK){}}         //send "new line" on uart at the end of transmission


Das Gleiche können Sie auch auf Ihr Projekt (nach einer Anpassung) übertragen - anders wird es wohl nicht gehen. Float wird einfach (noch?) nicht akzeptiert.

Sie können gerne über Ihr Projekt hier im Forum (oder auf Elektor-Labs) berichten - vielleicht nehmen wir das Projekt zur Veröffentlichung an, wenn es passend ist.

Auf jeden Fall viel Glück beim realisieren des Projekts!

Mit freundlichen Grüßen,

Viacheslav Gromov
slagromo
 
Posts: 21
Joined: Tue Dec 30, 2014 10:13 am


Return to ARM-COURSE

Who is online

Users browsing this forum: No registered users and 1 guest