comparison Output/pjrcUSB/output_com.h @ 420:23a1868b4ac2

Adding dynamic USB power support - Each scan module now has a current change callback which passes the available current as a parameter - No longer attempts to use the max 500 mA immediately, starts with 100 mA then goes to 500 mA after enumeration - If enumeration fails due to bMaxPower of 500 mA, then attempt again at 100 mA (might also be possible to go even lower to 20 mA in certain cases) - Now working with the Apple Ipad (no over-power messages) - Fixed Wake-up behaviour on Apple Ipad (and likely other iOS devices) - More effecient set_feature/clear_feature handling (device handler) - Initial power handling via Interconnect (still needs work to get it more dynamic)
author Jacob Alexander <haata@kiibohd.com>
date Sun, 21 Feb 2016 19:56:52 -0800
parents 39e338a6733d
children 970dab727f47
comparison
equal deleted inserted replaced
419:910be0f02758 420:23a1868b4ac2
1 /* Copyright (C) 2013-2015 by Jacob Alexander 1 /* Copyright (C) 2013-2016 by Jacob Alexander
2 * 2 *
3 * Permission is hereby granted, free of charge, to any person obtaining a copy 3 * Permission is hereby granted, free of charge, to any person obtaining a copy
4 * of this software and associated documentation files (the "Software"), to deal 4 * of this software and associated documentation files (the "Software"), to deal
5 * in the Software without restriction, including without limitation the rights 5 * in the Software without restriction, including without limitation the rights
6 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 6 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
80 80
81 extern volatile uint8_t Output_Available; // 0 - Output module not fully functional, 1 - Output module working 81 extern volatile uint8_t Output_Available; // 0 - Output module not fully functional, 1 - Output module working
82 82
83 extern uint8_t Output_DebugMode; // 0 - Debug disabled, 1 - Debug enabled 83 extern uint8_t Output_DebugMode; // 0 - Debug disabled, 1 - Debug enabled
84 84
85 extern uint16_t Output_ExtCurrent_Available; // mA - Set by outside module if not using USB (i.e. Interconnect)
86
85 87
86 88
87 // ----- Functions ----- 89 // ----- Functions -----
88 90
89 void Output_setup(); 91 void Output_setup();
95 void Output_softReset(); 97 void Output_softReset();
96 98
97 // Relies on USB serial module 99 // Relies on USB serial module
98 unsigned int Output_availablechar(); 100 unsigned int Output_availablechar();
99 101
102 // Returns the total mA available (total, if used in a chain, each device will have to use a slice of it)
103 unsigned int Output_current_available();
104
105 void Output_update_external_current( unsigned int current );
106 void Output_update_usb_current( unsigned int current );
107
100 int Output_getchar(); 108 int Output_getchar();
101 int Output_putchar( char c ); 109 int Output_putchar( char c );
102 int Output_putstr( char* str ); 110 int Output_putstr( char* str );
103 111