// Built with BFTC Rev. 1.0.0, mer 13 agosto 2014 11:56:10

 

/*

    Copyright 2014 Digital Technology Art SRL

    This file is part of Blackfin Toolchain (BFTC) project.

 

    BFTC is free software: you can redistribute it and/or modify

    it under the terms of the GNU General Public License as published by

    the Free Software Foundation, either version 3 of the License, or

    (at your option) any later version.

 

    BFTC is distributed in the hope that it will be useful,

    but WITHOUT ANY WARRANTY; without even the implied warranty of

    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the

    GNU General Public License for more details.

 

    You should have received a copy of the GNU General Public License

    along with Nome-Programma.  If not, see <http://www.gnu.org/licenses/>.

*/

 

#include "main.h"

 

int main(void)

{

    char    * ptr = "Hello world!";

    char    * np = 0;

    int     i = 5;

    unsigned int bs = sizeof(int) * 8;

    int     mi;

    char    buf[80];

   

    Set_PLL(16, 4); // CORE: 25MHz * 16 = 400MHz, SCLK: 400MHz / 4 = 100MHz

    Set_Uart0(115200);

   

    mi = (1 << (bs - 1)) + 1;

   

    while(1)

    {

        printf("\n\n");

        printf("Simple printf test\n");

        printf("Press any key to start ...\n");

        GetChar_Uart0();

 

        printf("%s\n", ptr);

        printf("termf test\n");

        printf("%s is null pointer\n", np);

        printf("%d = 5\n", i);

        printf("%d = - max int\n", mi);

        printf("char %c = 'a'\n", 'a');

        printf("hex %x = ff\n", 0xff);

        printf("hex %02x = 00\n", 0);

        printf("signed %d = unsigned %u = hex %X\n", -3, -3, -3);

        printf("%d %s(s)%%", 0, "message");

        printf("\n");

        printf("%d %s(s) with %%\n", 0, "message");

        sprintf(buf, "justif: \"%-10s\"\n", "left");

        printf("%s", buf);

        sprintf(buf, "justif: \"%10s\"\n", "right");

        printf("%s", buf);

        sprintf(buf, " 3: %04d zero padded\n", 3);

        printf("%s", buf);

        sprintf(buf, " 3: %-4d left justif.\n", 3);

        printf("%s", buf);

        sprintf(buf, " 3: %4d right justif.\n", 3);

        printf("%s", buf);

        sprintf(buf, "-3: %04d zero padded\n", -3);

        printf("%s", buf);

        sprintf(buf, "-3: %-4d left justif.\n", -3);

        printf("%s", buf);

        sprintf(buf, "-3: %4d right justif.\n", -3);

        printf("%s", buf);

 

        sprintf(buf, "%.2f is a double\n", 3.31);

        printf("%s", buf);

 

        sprintf(buf, "multiple unsigneds: %u %u %2u %X\n", 15, 5, 23, 0xB38F);

        printf("%s", buf);

 

        sprintf(buf, "multiple chars: %c %c %c %c\n", 'a', 'b', 'c', 'd');

        printf("%s", buf);

 

        sprintf(buf, "multiple doubles: %.2f %2.0f %.2f %.3f %.2f [%-8.3f]\n", 3.31, 2.45, -1.1, 3.093, 13.72, -4.382);

        printf("%s", buf);

    }

   

    return 0;

}