Browse Source

Cleaning up main.c

- main.c is now mostly complete
- Required fixes to matrix.c (some are temporary)
simple
Jacob Alexander 12 years ago
parent
commit
05c20112e9
4 changed files with 42 additions and 24 deletions
  1. 2
    2
      Macro/basic/macro.c
  2. 8
    1
      Scan/matrix/matrix.c
  3. 1
    0
      Scan/matrix/setup.cmake
  4. 31
    21
      main.c

+ 2
- 2
Macro/basic/macro.c View File

// AVR Includes // AVR Includes


// Project Includes // Project Includes
#include <usb_com.h>
#include <scan_loop.h>
#include <print.h> #include <print.h>
#include <scan_loop.h>
#include <usb_com.h>


// Keymaps // Keymaps
#include <keymap.h> #include <keymap.h>

+ 8
- 1
Scan/matrix/matrix.c View File



// ----- Includes ----- // ----- Includes -----


// AVR Includes
#include <avr/io.h>

// Local Includes // Local Includes
#include "matrix.h" #include "matrix.h"


uint8_t ddrF = 0x00; uint8_t ddrF = 0x00;


// Loop through all the pin assignments, for the initial pin settings // Loop through all the pin assignments, for the initial pin settings
int row, col;
//int row, col;


// Rows // Rows
/*
for ( row = 1; row < sizeof(matrix); row++ ) { for ( row = 1; row < sizeof(matrix); row++ ) {
switch ( matrix[row][col] ) { switch ( matrix[row][col] ) {
PIN_CASE(A): PIN_CASE(A):
continue; continue;
} }
} }
*/


// Setting the pins // Setting the pins
DDRA = ddrA; DDRA = ddrA;
{ {
// Column Scan // Column Scan
#if scanMode == scanCol #if scanMode == scanCol
/*
uint8_t col = 1; uint8_t col = 1;
uint8_t row = 1; uint8_t row = 1;
for ( ; col < sizeof(matrix[1]); col++ ) { for ( ; col < sizeof(matrix[1]); col++ ) {
PIN_TEST_COL(PINF); PIN_TEST_COL(PINF);
} }
} }
*/
#endif #endif


// Row Scan // Row Scan

+ 1
- 0
Scan/matrix/setup.cmake View File

# #


set( SCAN_SRCS set( SCAN_SRCS
matrix.c
scan_loop.c scan_loop.c
) )



+ 31
- 21
main.c View File



// AVR Includes // AVR Includes
#include <avr/io.h> #include <avr/io.h>
#include <avr/pgmspace.h>
#include <avr/interrupt.h> #include <avr/interrupt.h>


// Project Includes // Project Includes
//#include "usb_keys.h"
#include "scan_loop.h"
//#include "layouts.h"
//#include "usb_keyboard.h"
#include <macro.h>
#include <scan_loop.h>
#include <usb_com.h>


#include "usb_keyboard_debug.h"
#include "print.h"
#include "led.h"
#include <led.h>
#include <print.h>








// Configuring Pins // Configuring Pins
pinSetup(); pinSetup();
init_errorLED();


// Setup USB Module // Setup USB Module
usb_setup(); usb_setup();
TIMSK0 = (1 << TOIE0); TIMSK0 = (1 << TOIE0);


// Main Detection Loop // Main Detection Loop
while ( 1 ) {
//scan_loop();
uint8_t ledTimer = 15; // Enable LED for a short time
while ( 1 )
{
while ( 1 )
{
// Acquire Key Indices
scan_loop();


// Loop should never get here (indicate error)
errorLED( 1 );
// Send keypresses over USB if the ISR has signalled that it's time
if ( !sendKeypresses )
continue;


// HID Debug Error message
erro_print("Detection loop error, this is very bad...bug report!");
// Run Macros over Key Indices and convert to USB Keys
process_macros();

// Send USB Data
usb_send();


// Send keypresses over USB if the ISR has signalled that it's time
if ( !sendKeypresses )
continue;
// Clear sendKeypresses Flag
sendKeypresses = 0;


// Send USB Data
usb_send();
// Indicate Error, if valid
errorLED( ledTimer );
}


// Clear sendKeypresses Flag
sendKeypresses = 0;
// Loop should never get here (indicate error)
ledTimer = 255;

// HID Debug Error message
erro_print("Detection loop error, this is very bad...bug report!");
} }
} }