1
0
mirror of https://github.com/halleysfifthinc/Toyota-AVC-LAN synced 2025-06-09 08:56:16 +00:00

More cleanly separate specific functionality into the relevant files

This commit is contained in:
Allen Hill 2023-09-02 22:09:37 -04:00
parent 003c4c7f2f
commit 9581957eca
6 changed files with 33 additions and 104 deletions

View File

@ -1,35 +0,0 @@
/*
Copyright (C) 2006 Marcin Slonicki <marcin@softservice.com.pl>.
This program 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 2
of the License, or (at your option) any later version.
This program 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 this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-----------------------------------------------------------------------
this file is a part of the TOYOTA Corolla MP3 Player Project
-----------------------------------------------------------------------
http://www.softservice.com.pl/corolla/avc
May 28 / 2009 - version 2
*/
#include "GlobalDef.h"
// max 10 events in fifo
// uint8_t EventCount;
// uint8_t EventCmd[10];
uint8_t Event;
uint8_t showLog;
uint8_t showLog2;

View File

@ -1,50 +0,0 @@
/*--------------------------------------------------------------------------------------------------
Name : GlobalDef.h
Description : Global definitions.
History : 2004/04/06 - Created by Louis Frigon.
--------------------------------------------------------------------------------------------------*/
#ifndef _GLOBALDEF_H_
#define _GLOBALDEF_H_
#include <avr/io.h>
#define FALSE 0
#define TRUE (!FALSE)
// AVC LAN bus on AC2 (PA6/7)
// PA6 AINP0 +
// PA7 AINN1 -
#define INPUT_IS_SET (bit_is_set(AC2_STATUS, AC_STATE_bp))
#define INPUT_IS_CLEAR (bit_is_clear(AC2_STATUS, AC_STATE_bp))
#define sbi(port, bit) (port) |= (1 << (bit)) // Set bit (i.e. to 1)
#define cbi(port, bit) (port) &= ~(1 << (bit)) // Clear bit (i.e. set bit to 0)
// // max 10 events in fifo
// extern uint8_t EventCount;
// extern uint8_t EventCmd[10];
extern uint8_t Event;
#define EV_NOTHING 0
#define EV_DISPLAY 1
#define EV_STATUS 4
// // const
// #define smYear 1
// #define smMonth 2
// #define smDay 3
// #define smHour 4
// #define smMin 5
// #define smWDay 6
// #define STOPEvent cbi(TIMSK, TOIE1); cbi(UCSRB, RXCIE);
// #define STARTEvent sbi(TIMSK, TOIE1); sbi(UCSRB, RXCIE);
extern uint8_t showLog;
extern uint8_t showLog2;
#endif // _GLOBALDEF_H_

View File

@ -30,7 +30,6 @@
#include <avr/interrupt.h> #include <avr/interrupt.h>
#include <avr/io.h> #include <avr/io.h>
#include "GlobalDef.h"
#include "avclandrv.h" #include "avclandrv.h"
#include "com232.h" #include "com232.h"
@ -59,6 +58,8 @@
uint16_t CD_ID; uint16_t CD_ID;
uint16_t HU_ID; uint16_t HU_ID;
uint8_t printAllFrames;
uint8_t playMode; uint8_t playMode;
uint8_t cd_Track; uint8_t cd_Track;
@ -504,7 +505,7 @@ uint8_t AVCLAN_readframe() {
STARTEvent; STARTEvent;
if (showLog) if (printAllFrames)
AVCLAN_printframe(&frame); AVCLAN_printframe(&frame);
if (for_me) { if (for_me) {

View File

@ -30,7 +30,14 @@
#ifndef __AVCLANDRV_H #ifndef __AVCLANDRV_H
#define __AVCLANDRV_H #define __AVCLANDRV_H
#include "GlobalDef.h" // AVC LAN bus on AC2 (PA6/7)
// PA6 AINP0 +
// PA7 AINN1 -
#define INPUT_IS_SET (bit_is_set(AC2_STATUS, AC_STATE_bp))
#define INPUT_IS_CLEAR (bit_is_clear(AC2_STATUS, AC_STATE_bp))
#define sbi(port, bit) (port) |= (1 << (bit)) // Set bit (i.e. to 1)
#define cbi(port, bit) (port) &= ~(1 << (bit)) // Clear bit (i.e. set bit to 0)
#define STOPEvent \ #define STOPEvent \
cbi(RTC.PITINTCTRL, RTC_PI_bp); \ cbi(RTC.PITINTCTRL, RTC_PI_bp); \
@ -51,6 +58,8 @@ void AVC_ReleaseLine();
extern uint16_t CD_ID; // CD Changer ID extern uint16_t CD_ID; // CD Changer ID
extern uint16_t HU_ID; // Head-unit ID extern uint16_t HU_ID; // Head-unit ID
extern uint8_t printAllFrames;
typedef enum { typedef enum {
cm_Null = 0, cm_Null = 0,
cm_Status1 = 1, cm_Status1 = 1,
@ -114,6 +123,8 @@ extern uint8_t cd_Time_Sec;
extern uint8_t playMode; extern uint8_t playMode;
extern uint8_t answerReq;
#ifdef SOFTWARE_DEBUG #ifdef SOFTWARE_DEBUG
void AVCLan_Measure(); void AVCLan_Measure();
#endif #endif
@ -121,6 +132,4 @@ void AVCLan_Measure();
void SetHighLow(); void SetHighLow();
#endif #endif
extern uint8_t answerReq;
#endif // __AVCLANDRV_H #endif // __AVCLANDRV_H

View File

@ -27,7 +27,7 @@
#ifndef __COM232_H #ifndef __COM232_H
#define __COM232_H #define __COM232_H
#include "GlobalDef.h" #include <stdint.h>
extern uint8_t RS232_RxCharBuffer[25], RS232_RxCharBegin, RS232_RxCharEnd; extern uint8_t RS232_RxCharBuffer[25], RS232_RxCharBegin, RS232_RxCharEnd;
extern uint8_t readkey; extern uint8_t readkey;

View File

@ -27,10 +27,14 @@
#include <avr/interrupt.h> #include <avr/interrupt.h>
#include <avr/io.h> #include <avr/io.h>
#include "GlobalDef.h"
#include "avclandrv.h" #include "avclandrv.h"
#include "com232.h" #include "com232.h"
#define EV_NOTHING 0
#define EV_STATUS 4
uint8_t Event;
void Setup(); void Setup();
int main() { int main() {
@ -81,16 +85,16 @@ int main() {
// Key handler // Key handler
if (RS232_RxCharEnd) { if (RS232_RxCharEnd) {
cbi(USART0.CTRLA, USART_RXCIE_bp); // disable RX complete interrupt cli();
readkey = RS232_RxCharBuffer[RS232_RxCharBegin]; // read begin of received readkey = RS232_RxCharBuffer[RS232_RxCharBegin]; // read begin of received
// Buffer // Buffer
RS232_RxCharBegin++; RS232_RxCharBegin++;
if (RS232_RxCharBegin == RS232_RxCharEnd) // if Buffer is empty if (RS232_RxCharBegin == RS232_RxCharEnd) // if Buffer is empty
RS232_RxCharBegin = RS232_RxCharEnd = 0; // reset Buffer RS232_RxCharBegin = RS232_RxCharEnd = 0; // reset Buffer
sbi(USART0.CTRLA, USART_RXCIE_bp); // enable RX complete interrupt sei();
switch (readkey) { switch (readkey) {
case 'S': case 'S':
showLog = 0; printAllFrames = 0;
RS232_Print("READ SEQUENCE > \n"); RS232_Print("READ SEQUENCE > \n");
readSeq = 1; readSeq = 1;
s_len = 0; s_len = 0;
@ -98,14 +102,14 @@ int main() {
s_c[0] = s_c[1] = 0; s_c[0] = s_c[1] = 0;
break; break;
case 'W': case 'W':
showLog = 1; printAllFrames = 1;
readSeq = 0; readSeq = 0;
msg.broadcast = UNICAST; msg.broadcast = UNICAST;
msg.length = s_len; msg.length = s_len;
AVCLAN_sendframe(&msg); AVCLAN_sendframe(&msg);
break; break;
case 'Q': case 'Q':
showLog = 1; printAllFrames = 1;
readSeq = 0; readSeq = 0;
msg.broadcast = BROADCAST; msg.broadcast = BROADCAST;
msg.length = s_len; msg.length = s_len;
@ -123,19 +127,19 @@ int main() {
break; break;
case 'l': case 'l':
RS232_Print("Log OFF\n"); RS232_Print("Log OFF\n");
showLog = 0; printAllFrames = 0;
break; break;
case 'L': case 'L':
RS232_Print("Log ON\n"); RS232_Print("Log ON\n");
showLog = 1; printAllFrames = 1;
break; break;
case 'k': case 'k':
RS232_Print("str OFF\n"); RS232_Print("str OFF\n");
showLog2 = 0; echoCharacters = 0;
break; break;
case 'K': case 'K':
RS232_Print("str ON\n"); RS232_Print("str ON\n");
showLog2 = 1; echoCharacters = 1;
break; break;
case 'B': case 'B':
data_tmp[0] = 0x00; data_tmp[0] = 0x00;
@ -189,7 +193,7 @@ int main() {
s_dig = 0; s_dig = 0;
s_c[0] = s_c[1] = 0; s_c[0] = s_c[1] = 0;
} }
if (showLog2) { if (echoCharacters) {
RS232_Print("CURRENT SEQUENCE > "); RS232_Print("CURRENT SEQUENCE > ");
for (i = 0; i < s_len; i++) { for (i = 0; i < s_len; i++) {
RS232_PrintHex8(data_tmp[i]); RS232_PrintHex8(data_tmp[i]);
@ -208,8 +212,8 @@ void Setup() {
CD_ID = 0x360; CD_ID = 0x360;
HU_ID = 0x190; HU_ID = 0x190;
showLog = 1; printAllFrames = 1;
showLog2 = 1; echoCharacters = 1;
// Handle unconnected pins PA3, PB3-5 // Handle unconnected pins PA3, PB3-5
// Set as inputs // Set as inputs