您好!
我尝试在 LED 自适应前照灯上使用 TPS 92661、但 TPS 和 MCU (Arduino MEGA)之间的通信出现了一些问题。
我使用的是数据记录器、当时假设在我写消息时 TPS 应该回答我、但发送消息后没有任何反应。
192 = 0xC0
193 = 0xC1
145 = 0x91
140 = 0x8C
有人可以帮帮我吗?
#define ENABLE_PIN 5 //PIN 4执行 TPS
#define CLOCKOUT 10 //引脚8执行 TPS
void LMM_wr_1_reg (uint8_t LMM、uint8_t regaddr、uint8_t 数据);
void LMM_UART_xmit (uint8_t 数据);
CONST int 预分频= 1;
const ocrint 2aval = 3;
void setup(){
引脚模式(ENABLE_PIN、输出);
digitalWrite (ENABLE_PIN、LOW);
引脚模式(CLOCKOUT、输出);
TCCR2A =((1 << WGM21)|(1 << COM2A0));
//设置定时器2无预分频(即预分频= 1)
//
// CS22:0 = 001:使用没有预分频的 CPU 时钟
// CS2位2:0都在 TCCR2B 中
TCCR2B =(1 << cs20);
//确保禁用 timer2的比较匹配寄存器中断
TIMSK2=0;
//此值决定输出频率
OCR2A = ocr2aval;
//将您的设置代码放在这里,运行一次:
Serial.begin(9600);
延迟(100);
Serial1.begin(125000);
延迟(100);
digitalWrite (ENABLE_PIN、HIGH);
延迟(100);
while (Serial.available ()=0);
while (Serial.available ()!= 0)
serial.read();
serial.println ("读取时钟源");
serial.println (lMM_rd_1_reg (0x00、0xc1));
while (Serial.available ()=0);
while (Serial.available ()!= 0)
serial.read();
serial.println ("设置时钟源");
LMM_WR_1_reg (0x00、0xc1、0b00000011);// TPS 0、SYSCFG SCMASTER 1 PWR1
//LMM_WR_1_reg (0x01、0xc1、0b00000001);// TPS 1、SYSCFG SCMASTER 0 PWR1
while (Serial.available ()=0);
while (Serial.available ()!= 0)
serial.read();
serial.println ("读取时钟源");
serial.println (lMM_rd_1_reg (0x00、0xc1));
while (Serial.available ()=0);
while (Serial.available ()!= 0)
serial.read();
serial.println ("设置 LED");
LMM_wr_1_reg (0x00、0xB1、0b00001000);//启用 DO LED 12 (12A9)
LMM_wr_1_reg (0x00、0x0D、0b00000000);//LED12
LMM_wr_1_reg (0x00、0x2D、0b11111111);//LED12
while (1);
}
此致
Vasco Mendes