// Built with BFTC Rev. 1.0.0, lun 25 agosto 2014 14:19:58 /* 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/>. */ // Show how to implement a simple fast counter on port PG0. // The counter is capable to count with a frequency higher then 1.5MHz // #include "main.h" unsigned counter = 0; // Interrupt service procedure // void PGCallback() { counter++; // Clear the interrupt request *pPORTGIO_CLEAR = PG0; } unsigned char Menu() { printf("\n"); printf("COMMANDS ******************\n"); printf("0 - Clear counts\n"); printf("D - Display counts\n"); printf("> "); return GetChar_Uart0(); } int main(void) { int com; Set_PLL(16, 4); // CORE: 25MHz * 16 = 400MHz, SCLK: 400MHz / 4 = 100MHz Set_Port(); // Set the port according to project set Set_Uart0(115200); // printf is redirected to UART0 // Set an interrupt on the rising edge of the PG0 port Set_PortGInterruptService(PG0, PGCallback); Set_PortGInterruptEnable(PG0, true); while(1) // Main loop { com = Menu(); switch(com) { case '0': counter = 0; break; case 'D': printf("%8u\n", counter); break; } } return 0; }