Подскажи камень, имеющий 8 аппаратных входов SPI для синхронного получения данных. Ну или 8 SPI.
Или используй аппаратный I2C для SHT10.
И как обойтись без асма в таких местах?
Есть опыт в работе с медоборудованием(кардиограф, кардиомонитор, энцефалограф). Территориально нахожусь в Харькове.
Хотелось бы почитать ваши пожелания об разрабатываемом устройстве.
Почта для контактов: w271821(at)gmail.com
Для старта подойдет CodeWarrior или Kinetis Design Studio с ProcessorExpert . Можно использовать IAR.
Выполнение программы с отладкой возможно и из ОЗУ, и из FLASH.
LDI R16,0xD8
OUT 0x34,R16
LDI R16,0x01
STS 0x0040,R16
OUT быстрее на 1 такт.
С STS не укладывается в 4 такта (Within 4 instruction cycles, the application code must write the appropriate data to the protected register.)
Не надо путать описание структуры и определение переменных.
Описываем в "lcd.h" тип
#ifndef _LCD_H_
#define _LCD_H_
typedef struct
{
int a;
int b;
} type_lcd;
#endif
в "main.c" определяем переменную и пользуемся
#include "lcd.h"
type_lcd var_lcd
в "lcd.c" используем ту же самую переменную
#include "lcd.h"
extern type_lcd var_lcd
Читаем:
• Bit 0 - JTAGD: JTAG Disable
Setting this bit will disable the JTAG interface. This bit is protected by the Configuration Change
Protection mechanism, for details refer to Section 3.12 ”Configuration Change Protection” on
page 12.
Смотрим:
3.12 Configuration Change Protection
(меньше страницы)
Делаем:
CCP = 0xD8;
MCU.MCUCR = (1 << JTAGD);
или проще:
в программаторе в FUSES отключаем JTAGEN
IAR Embedded Workbench® IDE reference : Menus : Project menu
...
$_ENVVAR_$ The environment variable ENVVAR. Any name within $_ and _$ will be expanded to that system environment variable.
Проще всего сделать файлик *.mac, в котором прописать макросы, выполняемые при запуске симулятора. В него и вписать инициализацию прерываний. Есть пример SetupAdvanced.mac в ..\tutor.