// *************************************************************************************************
//
//  Пример работы с микромодулем TAM1, установленным на модуле C167M-3U
//  
//	Микромодуль TAM1 настраивается как ОУ с адресом 10
//	Для каждого подадреса: буфер приема и буфер передачи - это один общий буфер, который используется и для приема и для передачи
//
//  Примечание:
//	Микромодуль TAM1 устанавливается не на все исполнения модуля C167M-3U!
//	Описание исполнений модуля C167M-3U приведено в РЭ или ТУ на этот модуль.
//
//	Среда разработки: Keil uVision5
//
// *************************************************************************************************


#include "c167m-3u.h"
#include "\DAvE_files\main.h"
#include <absacc.h> 

#define TAM1_Memory_Base_Adr 		0x10000		//  Базовый адрес микромодуля TAM1

void user_main(void)
{
	unsigned int i,saddr;
	
	TOGGLE_WDT;
	
	HARRAY(int,TAM1_Memory_Base_Adr)[TAM1_REG_REJ1]= 0x43C0; _nop_(); 		// режим работы - ОУ, разблокировали приемники/передатчики обоих каналов
	HARRAY(int,TAM1_Memory_Base_Adr)[TAM1_REG_REJ2]= 0x5000; _nop_(); 		// адрес ОУ - 10
					
	HARRAY(int,TAM1_Memory_Base_Adr)[TAM1_REG_ADR_MESS]	= 0x3FF; _nop_(); // регистр адреса сообщений -> адрес последнего блока (3FFh)
					
	for(saddr=1;saddr<31;saddr++)
		{
			HARRAY(int,TAM1_Memory_Base_Adr)[TAM1_REG_ADR_RAM]= ( (0x3FF<<6) + saddr);	 _nop_(); // 3FFh<<6 + T/R бит (0) + SA(подадрес) 
			HARRAY(int,TAM1_Memory_Base_Adr)[TAM1_REG_DATA_RAM]= (saddr-1); _nop_(); // формируем начальный адрес перехода в таблице адресов блоков

			HARRAY(int,TAM1_Memory_Base_Adr)[TAM1_REG_ADR_RAM]= ( (0x3FF<<6) + (1<<5) + saddr);	 _nop_(); // 3FFh<<6 + T/R бит (1) + SA(подадрес) 
			HARRAY(int,TAM1_Memory_Base_Adr)[TAM1_REG_DATA_RAM]= (saddr-1); _nop_(); // формируем начальный адрес перехода в таблице адресов блоков
						 			
			HARRAY(int,TAM1_Memory_Base_Adr)[TAM1_REG_ADR_RAM]= ( ((saddr-1)<<6) + 63);	 _nop_(); 		// формируем адрес перехода в блоке данных
			HARRAY(int,TAM1_Memory_Base_Adr)[TAM1_REG_DATA_RAM]= (saddr-1); _nop_(); 					
		}					
					
	HARRAY(int,TAM1_Memory_Base_Adr)[TAM1_REG_REJ1]= 0x43C8; _nop_();  			// запуск ОУ, режим работы - ОУ, разблокировали приемники/передатчики обоих каналов
				
	while(1!=0) TOGGLE_WDT;
	
}  
			

