本帖最后由 szhcs 于 2014-4-19 08:39 编辑
原标题:MWC求助:如何在MEGA2560的A1-A6输出报警信号?
原来用328P的芯片,MWC的报警输出到D8,如果D8给AUX2占用,还可以改到A2。
但MEGA芯片的报警输出在D32,我的飞控板这个脚没有引出来,飞控板只引出A0-A6,其中A0为电压检测输入,能不能同时在A1-A6脚输出报警信号,请大神赐教。
先谢谢了。
2014-3-31追加:这个问题已经解决了,报警输出改到D30和D12同步输出,代码不在手边,如果有人感兴趣,回帖后我再放上来。
2014-4-18追加:最后决定报警输出放在D12脚,主要原因是在MWC中,D11和D12是闲置不用的,我采用的是改装的声光报警器,电流比较大(200mA+),引脚40mA的电流不够,需要另加+5V,放在D12就可以使用舵机线连接报警器,引入D12脚的+5V电源。
同时还修改了LED的设置:
解锁指示灯为蓝色(D13);(原代码为D13和D30)
GPS指示灯为绿色(D30),同时在D11输出,可以再外接一个LED,指示GPS状态。(原代码为D31)
报警指示灯为红色(D31),同时在D12输出,可以外接有源报警器和爆闪灯。(原代码为D32)
在MWC2.3中需修改def.h中的代码。
第534行-565行用下列代码替换。
/************************** all the Mega types ***********************************/
#if defined(MEGA)
#define LEDPIN_PINMODE pinMode (13, OUTPUT); //pinMode (11, OUTPUT); //pinMode (30, OUTPUT);======================
#define LEDPIN_TOGGLE PINB |= (1<<7); //PINB |= (1<<5); //PINC |= (1<<7);
#define LEDPIN_ON PORTB |= (1<<7); //PORTB |= (1<<5); //PORTC |= (1<<7);
#define LEDPIN_OFF PORTB &= ~(1<<7); //PORTB &= ~(1<<5); //PORTC &= ~(1<<7);
#define BUZZERPIN_PINMODE {pinMode (12, OUTPUT);pinMode (31, OUTPUT);} //pinMode (32, OUTPUT);
#if defined PILOTLAMP
#define PL_PIN_ON {PORTB |= 1<<6; PORTC |= 1<<6;} //PORTC |= 1<<5;
#define PL_PIN_OFF {PORTB &= ~(1<<6);PORTC &= ~(1<<6);} //PORTC &= ~(1<<5);
#else
#define BUZZERPIN_ON {PORTB |= 1<<6; PORTC |= 1<<6;} //PORTC |= 1<<5;
#define BUZZERPIN_OFF {PORTB &= ~(1<<6);PORTC &= ~(1<<6);} //PORTC &= ~(1<<5);
#endif
#if !defined(DISABLE_POWER_PIN)
#define POWERPIN_PINMODE pinMode (37, OUTPUT);
#define POWERPIN_ON PORTC |= 1<<0;
#define POWERPIN_OFF PORTC &= ~(1<<0);
#else
#define POWERPIN_PINMODE ;
#define POWERPIN_ON ;
#define POWERPIN_OFF ;
#endif
#define I2C_PULLUPS_ENABLE PORTD |= 1<<0; PORTD |= 1<<1; // PIN 20&21 (SDA&SCL)
#define I2C_PULLUPS_DISABLE PORTD &= ~(1<<0); PORTD &= ~(1<<1);
#define PINMODE_LCD pinMode(0, OUTPUT);
#define LCDPIN_OFF PORTE &= ~1; //switch OFF digital PIN 0
#define LCDPIN_ON PORTE |= 1;
#define STABLEPIN_PINMODE pinMode (30, OUTPUT); pinMode (11, OUTPUT); //pinMode (31, OUTPUT); ===================
#define STABLEPIN_ON PORTC |= 1<<7; PORTB |= (1<<5); //PORTC |= 1<<6;
#define STABLEPIN_OFF PORTC &= ~(1<<7); PORTB &= ~(1<<5); //PORTC &= ~(1<<6);
其中大概修改了10行左右的代码,为了修改方便,把整段的代码全部放上了。
|