Archived
can interface tested
IT WORKING !!!!
This commit is contained in:
1 parent
357a7af1e8
commit
519cbfff68
5 files changed
+102
-66
No files matched your search
@@ -57,8 +57,12 @@ void Factory_init() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void foo(uint8_t a, uint8_t b, uint32_t c){
|
void foo(uint8_t a, uint8_t b, uint32_t c){
|
||||||
LED_on(l1());
|
if(b){
|
||||||
CAN_Send(b, a, c);
|
LED_on(l1());
|
||||||
|
} else {
|
||||||
|
LED_off(l1());
|
||||||
|
}
|
||||||
|
CAN_Send(a, b, c);
|
||||||
}
|
}
|
||||||
|
|
||||||
//connect objects if required
|
//connect objects if required
|
||||||
|
|||||||
@@ -29,8 +29,6 @@ void main(void)
|
|||||||
// TMR0 is interrupting. Important: Set the TICKINTERVAL define in
|
// TMR0 is interrupting. Important: Set the TICKINTERVAL define in
|
||||||
//the xf.h file to the same value as the TMR0 value.
|
//the xf.h file to the same value as the TMR0 value.
|
||||||
TMR0_SetInterruptHandler(XF_decrementAndQueueTimers);
|
TMR0_SetInterruptHandler(XF_decrementAndQueueTimers);
|
||||||
|
|
||||||
CAN_Send(1,1,42);
|
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -36,20 +36,20 @@ bool ALIVE_CHECKER_processEvent(Event* ev) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case STAC_SETUP:
|
case STAC_SETUP:
|
||||||
if (ev->id = evACborn) {
|
if (ev->id == evACborn) {
|
||||||
me->state = STAC_BORN;
|
me->state = STAC_BORN;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case STAC_BORN:
|
case STAC_BORN:
|
||||||
if (ev->id = evACready) {
|
if (ev->id == evACready) {
|
||||||
me->state = STAC_WAIT;
|
me->state = STAC_WAIT;
|
||||||
ALIVE_CHECKER_emitPoll(me, me->aliveTime*10, 0);
|
ALIVE_CHECKER_emitPoll(me, me->aliveTime*10, 0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case STAC_WAIT:
|
case STAC_WAIT:
|
||||||
if (ev->id = evACpoll) {
|
if (ev->id == evACpoll) {
|
||||||
if (me->isAlive) {
|
if (me->isAlive) {
|
||||||
me->state = STAC_WAIT;
|
me->state = STAC_WAIT;
|
||||||
ALIVE_CHECKER_emitPoll(me, me->aliveTime*10, 0);
|
ALIVE_CHECKER_emitPoll(me, me->aliveTime*10, 0);
|
||||||
@@ -60,7 +60,7 @@ bool ALIVE_CHECKER_processEvent(Event* ev) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case STAC_DEAD:
|
case STAC_DEAD:
|
||||||
if(ev->id = evACborn) {
|
if(ev->id == evACborn) {
|
||||||
me->state = STAC_BORN;
|
me->state = STAC_BORN;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -6,6 +6,38 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "can_interface.h"
|
#include "can_interface.h"
|
||||||
|
#include "../mcc_generated_files/ecan.h"
|
||||||
|
|
||||||
|
|
||||||
|
typedef union {
|
||||||
|
struct {
|
||||||
|
uint8_t sender;
|
||||||
|
uint8_t recipient;
|
||||||
|
uint8_t message;
|
||||||
|
uint32_t data;
|
||||||
|
} full;
|
||||||
|
struct {
|
||||||
|
uint8_t sender;
|
||||||
|
uint8_t recipient;
|
||||||
|
uint8_t message;
|
||||||
|
uint8_t data0;
|
||||||
|
uint8_t data1;
|
||||||
|
uint8_t data2;
|
||||||
|
uint8_t data3;
|
||||||
|
} separate;
|
||||||
|
} CAN_MESSAGE;
|
||||||
|
|
||||||
|
typedef union {
|
||||||
|
struct {
|
||||||
|
uint8_t byte0;
|
||||||
|
uint8_t byte1;
|
||||||
|
uint8_t byte2;
|
||||||
|
uint8_t byte3;
|
||||||
|
} separate;
|
||||||
|
struct {
|
||||||
|
uint32_t bytes;
|
||||||
|
} full;
|
||||||
|
} CAN_4_BYTES;
|
||||||
|
|
||||||
void CAN_init(){
|
void CAN_init(){
|
||||||
CAN_myself.receiveCan = NULL;
|
CAN_myself.receiveCan = NULL;
|
||||||
@@ -39,11 +71,13 @@ bool CAN_processEvent(Event* ev) {
|
|||||||
if (me->receiveCan != NULL) {
|
if (me->receiveCan != NULL) {
|
||||||
uint32_t canData = (uint32_t) data;
|
uint32_t canData = (uint32_t) data;
|
||||||
data = data>>32;
|
data = data>>32;
|
||||||
uint8_t idMsg = (uint8_t) data;
|
|
||||||
data = data>>4;
|
CAN_4_BYTES tmpData;
|
||||||
uint8_t idRecipient = (uint8_t) data;
|
tmpData.full.bytes = data;
|
||||||
data = data>>4;
|
uint8_t idMsg = 0x0F && (tmpData.separate.byte0>>4);
|
||||||
uint8_t idSender = (uint8_t) data;
|
uint8_t idRecipient = 0x0F && tmpData.separate.byte1;
|
||||||
|
uint8_t idSender = (tmpData.separate.byte1>>4);
|
||||||
|
|
||||||
me->receiveCan(idSender, idMsg, canData);
|
me->receiveCan(idSender, idMsg, canData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -54,13 +88,13 @@ bool CAN_processEvent(Event* ev) {
|
|||||||
canMsg.frame.idType = 0; // I don't understand what is it
|
canMsg.frame.idType = 0; // I don't understand what is it
|
||||||
canMsg.frame.dlc = 4; // 4 bytes to send
|
canMsg.frame.dlc = 4; // 4 bytes to send
|
||||||
canMsg.frame.rtr = 0; // no remote frame
|
canMsg.frame.rtr = 0; // no remote frame
|
||||||
canMsg.frame.data0 = (uint8_t) data;
|
canMsg.frame.data3 = (uint8_t) data;
|
||||||
data = data >> 8;
|
|
||||||
canMsg.frame.data1 = (uint8_t) data;
|
|
||||||
data = data >> 8;
|
data = data >> 8;
|
||||||
canMsg.frame.data2 = (uint8_t) data;
|
canMsg.frame.data2 = (uint8_t) data;
|
||||||
data = data >> 8;
|
data = data >> 8;
|
||||||
canMsg.frame.data3 = (uint8_t) data;
|
canMsg.frame.data1 = (uint8_t) data;
|
||||||
|
data = data >> 8;
|
||||||
|
canMsg.frame.data0 = (uint8_t) data;
|
||||||
data = data >> 8;
|
data = data >> 8;
|
||||||
canMsg.frame.id = (uint32_t) data;
|
canMsg.frame.id = (uint32_t) data;
|
||||||
CAN_transmit(&canMsg);
|
CAN_transmit(&canMsg);
|
||||||
@@ -107,14 +141,14 @@ void CAN_newMsg() {
|
|||||||
uCAN_MSG canMsg;
|
uCAN_MSG canMsg;
|
||||||
CAN_receive(&canMsg);
|
CAN_receive(&canMsg);
|
||||||
data = canMsg.frame.id;
|
data = canMsg.frame.id;
|
||||||
data = data<<32;
|
data = data<<12;
|
||||||
data = canMsg.frame.data0;
|
data = data | canMsg.frame.data0;
|
||||||
data = data<<8;
|
data = data<<8;
|
||||||
data = canMsg.frame.data1;
|
data = data | canMsg.frame.data1;
|
||||||
data = data<<8;
|
data = data<<8;
|
||||||
data = canMsg.frame.data2;
|
data = data | canMsg.frame.data2;
|
||||||
data = data<<8;
|
data = data<<8;
|
||||||
data = canMsg.frame.data3;
|
data = data | canMsg.frame.data3;
|
||||||
POST(&CAN_myself, &CAN_processEvent, evCAnewMsg, 0, data);
|
POST(&CAN_myself, &CAN_processEvent, evCAnewMsg, 0, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1948,7 +1948,7 @@
|
|||||||
</entry>
|
</entry>
|
||||||
<entry>
|
<entry>
|
||||||
<key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="DMA Manager" name="dmaTable"/>
|
<key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="DMA Manager" name="dmaTable"/>
|
||||||
<value>{"dataArray":[{"DMA Channels":{"data":{"isDisable":"true","options":"--NONE--","text":"DMA CHANNEL1","value":"false"},"id":"DMA Channels_rowCount_0"},"Src Module":{"data":{"isDisable":"true","options":"--NONE--,ECAN,TMR0,MEMORY","text":"--NONE--","value":"--NONE--"},"id":"Src Module_rowCount_0"},"Src Region":{"data":{"isDisable":"true","options":"SFR#disabled,GPR#enabled,Program Flash#enabled,Data EEPROM#enabled","text":"GPR","value":"GPR"},"id":"Src Region_rowCount_0"},"Src SFR":{"Src SFR":{"isDisable":"true","options":"","text":"","value":""},"data":{"isDisable":"true","options":"","text":"","value":""},"id":"Src SFR_rowCount_0"},"Src VarName":{"data":{"isDisable":"true","options":"","text":"SrcVarName0","value":"SrcVarName0"},"Src VarName":{"isDisable":"true","options":"","text":"SrcVarName0","value":"SrcVarName0"},"id":"Src VarName_rowCount_0"},"Src VarSize":{"data":{"isDisable":"true","options":"","text":"10","value":"10"},"id":"Src VarSize_rowCount_0","Src VarSize":{"isDisable":"true","options":"","text":"10","value":"10"}},"Src Address":{"data":{"isDisable":"true","options":"","text":"Enter Address0","value":"Enter Address0"},"id":"Src Address_rowCount_0","Src Address":{"isDisable":"true","options":"","text":"Enter Address0","value":"Enter Address0"}},"Src Mode":{"Src Mode":{"isDisable":"true","options":"decremented,incremented,unchanged","text":"unchanged","value":"unchanged"},"data":{"isDisable":"true","options":"decremented,incremented,unchanged","text":"unchanged","value":"unchanged"},"id":"Src Mode_rowCount_0"},"Src Message Size":{"data":{"isDisable":"true","options":"","text":"1","value":"1"},"Src Message Size":{"isDisable":"true","options":"","text":"1","value":"1"},"id":"Src Message Size_rowCount_0"},"Dst Module":{"data":{"isDisable":"true","options":"--NONE--,ECAN,TMR0,MEMORY","text":"--NONE--","value":"--NONE--"},"id":"Dst Module_rowCount_0"},"Dst Region":{"data":{"isDisable":"true","options":"SFR,GPR","text":"GPR","value":"GPR"},"id":"Dst Region_rowCount_0"},"Dst SFR":{"Dst SFR":{"isDisable":"true","options":"","text":"","value":""},"data":{"isDisable":"true","options":"","text":"","value":""},"id":"Dst SFR_rowCount_0"},"Dst VarName":{"data":{"isDisable":"true","options":"","text":"DstVarName0","value":"DstVarName0"},"Dst VarName":{"isDisable":"true","options":"","text":"DstVarName0","value":"DstVarName0"},"id":"Dst VarName_rowCount_0"},"Dst VarSize":{"data":{"isDisable":"true","options":"","text":"10","value":"10"},"id":"Dst VarSize_rowCount_0","Dst VarSize":{"isDisable":"true",&Line truncated
|
<value>{"dataArray":[{"DMA Channels":{"data":{"isDisable":"true","options":"--NONE--","text":"DMA CHANNEL1","value":"false"},"id":"DMA Channels_rowCount_0"},"Src Module":{"data":{"isDisable":"true","options":"--NONE--,MEMORY,TMR0,ECAN","text":"--NONE--","value":"--NONE--"},"id":"Src Module_rowCount_0"},"Src Region":{"data":{"isDisable":"true","options":"SFR#disabled,GPR#enabled,Program Flash#enabled,Data EEPROM#enabled","text":"GPR","value":"GPR"},"id":"Src Region_rowCount_0"},"Src SFR":{"Src SFR":{"isDisable":"true","options":"","text":"","value":""},"data":{"isDisable":"true","options":"","text":"","value":""},"id":"Src SFR_rowCount_0"},"Src VarName":{"data":{"isDisable":"true","options":"","text":"SrcVarName0","value":"SrcVarName0"},"Src VarName":{"isDisable":"true","options":"","text":"SrcVarName0","value":"SrcVarName0"},"id":"Src VarName_rowCount_0"},"Src VarSize":{"data":{"isDisable":"true","options":"","text":"10","value":"10"},"id":"Src VarSize_rowCount_0","Src VarSize":{"isDisable":"true","options":"","text":"10","value":"10"}},"Src Address":{"data":{"isDisable":"true","options":"","text":"Enter Address0","value":"Enter Address0"},"id":"Src Address_rowCount_0","Src Address":{"isDisable":"true","options":"","text":"Enter Address0","value":"Enter Address0"}},"Src Mode":{"Src Mode":{"isDisable":"true","options":"decremented,incremented,unchanged","text":"unchanged","value":"unchanged"},"data":{"isDisable":"true","options":"decremented,incremented,unchanged","text":"unchanged","value":"unchanged"},"id":"Src Mode_rowCount_0"},"Src Message Size":{"data":{"isDisable":"true","options":"","text":"1","value":"1"},"Src Message Size":{"isDisable":"true","options":"","text":"1","value":"1"},"id":"Src Message Size_rowCount_0"},"Dst Module":{"data":{"isDisable":"true","options":"--NONE--,MEMORY,TMR0,ECAN","text":"--NONE--","value":"--NONE--"},"id":"Dst Module_rowCount_0"},"Dst Region":{"data":{"isDisable":"true","options":"SFR,GPR","text":"GPR","value":"GPR"},"id":"Dst Region_rowCount_0"},"Dst SFR":{"Dst SFR":{"isDisable":"true","options":"","text":"","value":""},"data":{"isDisable":"true","options":"","text":"","value":""},"id":"Dst SFR_rowCount_0"},"Dst VarName":{"data":{"isDisable":"true","options":"","text":"DstVarName0","value":"DstVarName0"},"Dst VarName":{"isDisable":"true","options":"","text":"DstVarName0","value":"DstVarName0"},"id":"Dst VarName_rowCount_0"},"Dst VarSize":{"data":{"isDisable":"true","options":"","text":"10","value":"10"},"id":"Dst VarSize_rowCount_0","Dst VarSize":{"isDisable":"true",&Line truncated
|
||||||
</entry>
|
</entry>
|
||||||
<entry>
|
<entry>
|
||||||
<key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ECAN" name="ECAN_ERRIISRFunction"/>
|
<key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ECAN" name="ECAN_ERRIISRFunction"/>
|
||||||
@@ -17159,27 +17159,7 @@
|
|||||||
<value>Window delay time 87.5%</value>
|
<value>Window delay time 87.5%</value>
|
||||||
</entry>
|
</entry>
|
||||||
</tokenMap>
|
</tokenMap>
|
||||||
<generatedFileHashHistoryMap class="java.util.HashMap">
|
<generatedFileHashHistoryMap class="java.util.TreeMap">
|
||||||
<entry>
|
|
||||||
<file>mcc_generated_files\mcc.h</file>
|
|
||||||
<hash>aead6835bc73f4332d9abb5de6c2a40829de25cc98452c4c69960d51b52844e9</hash>
|
|
||||||
</entry>
|
|
||||||
<entry>
|
|
||||||
<file>mcc_generated_files\device_config.h</file>
|
|
||||||
<hash>2f04b3ff01bbe49769634d389433c7010ffb45d0f2973898e33988be7ab07d56</hash>
|
|
||||||
</entry>
|
|
||||||
<entry>
|
|
||||||
<file>mcc_generated_files\interrupt_manager.h</file>
|
|
||||||
<hash>313560861c27e0a0b39b2bbb6a64ac2068fd1937dc0339d7303ff241bbb52955</hash>
|
|
||||||
</entry>
|
|
||||||
<entry>
|
|
||||||
<file>mcc_generated_files\memory.c</file>
|
|
||||||
<hash>ae2dbb373f8f03dd013cde153de046ba7c3c41033c1dedb8545cde41837ca3da</hash>
|
|
||||||
</entry>
|
|
||||||
<entry>
|
|
||||||
<file>mcc_generated_files\tmr0.h</file>
|
|
||||||
<hash>68e2ba0f47166abd2da1a472d6a67bfde31f9be3edc8582ace93062a6a32f441</hash>
|
|
||||||
</entry>
|
|
||||||
<entry>
|
<entry>
|
||||||
<file>main.c</file>
|
<file>main.c</file>
|
||||||
<hash>91afd5df6694cfcd0279d66d9b5b3eb72a9c4eae825f0c0af82824e2ee66e35e</hash>
|
<hash>91afd5df6694cfcd0279d66d9b5b3eb72a9c4eae825f0c0af82824e2ee66e35e</hash>
|
||||||
@@ -17188,6 +17168,46 @@
|
|||||||
<file>mcc_generated_files\device_config.c</file>
|
<file>mcc_generated_files\device_config.c</file>
|
||||||
<hash>4288704a051756dce8bb92e77a82ba1285fc638cde56b3676b59406ba0fcea7b</hash>
|
<hash>4288704a051756dce8bb92e77a82ba1285fc638cde56b3676b59406ba0fcea7b</hash>
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry>
|
||||||
|
<file>mcc_generated_files\device_config.h</file>
|
||||||
|
<hash>2f04b3ff01bbe49769634d389433c7010ffb45d0f2973898e33988be7ab07d56</hash>
|
||||||
|
</entry>
|
||||||
|
<entry>
|
||||||
|
<file>mcc_generated_files\ecan.c</file>
|
||||||
|
<hash>b60a119876875a2af386474d32176b8be0f47a074a2d8688e79251a2d7cdf6fa</hash>
|
||||||
|
</entry>
|
||||||
|
<entry>
|
||||||
|
<file>mcc_generated_files\ecan.h</file>
|
||||||
|
<hash>0473fedf57d1376193e049ba507abed0960af84f0e416bea25972c4dae59ca26</hash>
|
||||||
|
</entry>
|
||||||
|
<entry>
|
||||||
|
<file>mcc_generated_files\interrupt_manager.c</file>
|
||||||
|
<hash>bb0eaf9aec0554de0106cff27f66e56ae02a40bbdcb68d4d58d8a0d84d8929f6</hash>
|
||||||
|
</entry>
|
||||||
|
<entry>
|
||||||
|
<file>mcc_generated_files\interrupt_manager.h</file>
|
||||||
|
<hash>313560861c27e0a0b39b2bbb6a64ac2068fd1937dc0339d7303ff241bbb52955</hash>
|
||||||
|
</entry>
|
||||||
|
<entry>
|
||||||
|
<file>mcc_generated_files\mcc.c</file>
|
||||||
|
<hash>34fadc3a271040b358215ec477acf3e135b77137f9a1cc96def75fc2936d3ad6</hash>
|
||||||
|
</entry>
|
||||||
|
<entry>
|
||||||
|
<file>mcc_generated_files\mcc.h</file>
|
||||||
|
<hash>aead6835bc73f4332d9abb5de6c2a40829de25cc98452c4c69960d51b52844e9</hash>
|
||||||
|
</entry>
|
||||||
|
<entry>
|
||||||
|
<file>mcc_generated_files\memory.c</file>
|
||||||
|
<hash>ae2dbb373f8f03dd013cde153de046ba7c3c41033c1dedb8545cde41837ca3da</hash>
|
||||||
|
</entry>
|
||||||
|
<entry>
|
||||||
|
<file>mcc_generated_files\memory.h</file>
|
||||||
|
<hash>77a34d015c961db9ed465b4ca2d85ba910fb030ca14c3c2854428ab0b9b6fac2</hash>
|
||||||
|
</entry>
|
||||||
|
<entry>
|
||||||
|
<file>mcc_generated_files\pin_manager.c</file>
|
||||||
|
<hash>f8ace8a0b0d2a4f0ed3e209db056da57858e5a670ad7d514e44352d9187be806</hash>
|
||||||
|
</entry>
|
||||||
<entry>
|
<entry>
|
||||||
<file>mcc_generated_files\pin_manager.h</file>
|
<file>mcc_generated_files\pin_manager.h</file>
|
||||||
<hash>3e61569926ed5f184a2267965f2cf7ca26dc997d552c213ebd94dbd80da54891</hash>
|
<hash>3e61569926ed5f184a2267965f2cf7ca26dc997d552c213ebd94dbd80da54891</hash>
|
||||||
@@ -17197,28 +17217,8 @@
|
|||||||
<hash>f9702dc8c67433ffc3b8db9e12ee3a73fb0b152a792d26f6c7a89a3846bc4fc9</hash>
|
<hash>f9702dc8c67433ffc3b8db9e12ee3a73fb0b152a792d26f6c7a89a3846bc4fc9</hash>
|
||||||
</entry>
|
</entry>
|
||||||
<entry>
|
<entry>
|
||||||
<file>mcc_generated_files\pin_manager.c</file>
|
<file>mcc_generated_files\tmr0.h</file>
|
||||||
<hash>f8ace8a0b0d2a4f0ed3e209db056da57858e5a670ad7d514e44352d9187be806</hash>
|
<hash>68e2ba0f47166abd2da1a472d6a67bfde31f9be3edc8582ace93062a6a32f441</hash>
|
||||||
</entry>
|
|
||||||
<entry>
|
|
||||||
<file>mcc_generated_files\ecan.c</file>
|
|
||||||
<hash>b60a119876875a2af386474d32176b8be0f47a074a2d8688e79251a2d7cdf6fa</hash>
|
|
||||||
</entry>
|
|
||||||
<entry>
|
|
||||||
<file>mcc_generated_files\mcc.c</file>
|
|
||||||
<hash>34fadc3a271040b358215ec477acf3e135b77137f9a1cc96def75fc2936d3ad6</hash>
|
|
||||||
</entry>
|
|
||||||
<entry>
|
|
||||||
<file>mcc_generated_files\interrupt_manager.c</file>
|
|
||||||
<hash>bb0eaf9aec0554de0106cff27f66e56ae02a40bbdcb68d4d58d8a0d84d8929f6</hash>
|
|
||||||
</entry>
|
|
||||||
<entry>
|
|
||||||
<file>mcc_generated_files\ecan.h</file>
|
|
||||||
<hash>0473fedf57d1376193e049ba507abed0960af84f0e416bea25972c4dae59ca26</hash>
|
|
||||||
</entry>
|
|
||||||
<entry>
|
|
||||||
<file>mcc_generated_files\memory.h</file>
|
|
||||||
<hash>77a34d015c961db9ed465b4ca2d85ba910fb030ca14c3c2854428ab0b9b6fac2</hash>
|
|
||||||
</entry>
|
</entry>
|
||||||
</generatedFileHashHistoryMap>
|
</generatedFileHashHistoryMap>
|
||||||
</config>
|
</config>
|
||||||
Reference in new issue
Block a user