John851
Участник-
Постов
50 -
Зарегистрирован
-
Посещение
Репутация
0 ОбычныйИнформация о John851
-
Звание
Участник
-
Open AT I2C
John851 опубликовал тема в Сотовая связь и ее приложения
Работаю на модуле Q2687. Пытаюсь передать по I2C несколько байт, вот исходник: #include "adl_global.h" #include "generated.h" #include "main.h" #include "adl_traces.h" s32 I2C_handle; #define WRITE_BUFF_SIZE 4 u8 WBUFF[WRITE_BUFF_SIZE]={0x20,0x6C,0x3F,0x5D}; adl_busI2CSettings_t I2Cconf = { 0xAA, ADL_BUS_I2C_CLK_STD, ADL_BUS_I2C_ADDR_7_BITS, ADL_BUS_I2C_MASTER_MODE }; adl_busAccess_t I2Caccess = { 0x00, //general call 0x00 }; void main_task (void) { //subscribe to I2C bus service I2C_handle=adl_busSubscribe(ADL_BUS_ID_I2C, 1, &I2Cconf); TRACE((2, "Writing to the bus")); s32 resp = adl_busWrite(I2C_handle, &I2Caccess, WRITE_BUFF_SIZE, WBUFF); TRACE((2, "%d",resp)); } В результате, хэндлер норм создается, на шину ничего не отправляется, а ответ от функции adl_busWrite приходит -2, то есть ошибочный параметр. Все вроде по примеру, а работать не хочет. -
Добрый вечер, у меня на меге 8 работает ацп + необходимо обрадатывать внешнее прерывание от пина INT0. Я сделал чтоб срабатывало по спаду, на порт вывожу 1, пин подтянул к +5 через 10 ком, к этому же пину подцепил кнопку другой конец которой на земле - т.е. когда кнопка нажата уровень на пине INT0 просаживается на землю и происходит прерывание. Проблема в том что если зажать кнопку то ацп начинает врать буквально на десятые и сотые миливольта, этого достаточно чтобы заметно испортить показания с датчиков. У меня закралось подозрение что я неправильно организовал схему срабатывания, помогите плиз организовать правильно прерывание...
-
Возврат нескольких аргументов
John851 ответил John851 тема в Программирование
что вы хотите услышать? я же четко проблему объяснил, если кому то влом ответить или почитать я не виноват.. -
Возврат нескольких аргументов
John851 ответил John851 тема в Программирование
К сожалению мне тут не поможет оператор взятия адреса от адреса -
Возврат нескольких аргументов
John851 ответил John851 тема в Программирование
эм дак вот и обращаюсь сюда за знаниями, все только и могут посылать в буквари.. Я передаю в качестве аргументов элементы массива типа char, как мне известно - имя массива со смещением это и есть указатель - ок пробуем, пишет: ../SLAVE.c:110: warning: passing argument 2 of 'start_single' makes pointer from integer without a cast - о чем здесь речь? пробую преобразовать указатели к типу char: (char *) mas[0] - ок пробуем, пишет: ../SLAVE.c:110: warning: cast to pointer from integer of different size. Вы бы не могли пояснить что происходит -
Возврат нескольких аргументов
John851 ответил John851 тема в Программирование
так я тоже делал, токо вот потом не смог разобраться в ворнингах... вообщем я в эту функцию на место arg1 и arg2 подаю элементы массива типа char, а он мне в воринигах пишет ../SLAVE.c:110: warning: passing argument 2 of 'start_single' makes pointer from integer without a cast и так для каждого аргумента. -
Возврат нескольких аргументов
John851 опубликовал тема в Программирование
Добрый вечер, забыл как возвращать сразу несколько аргументов из процедуры... я пробовал что то типа void func (char &arg1, char &arg2) { ..... arg1=val1; arg2=val2; } но компилятор такого не принял... -
спецификатор static
John851 ответил John851 тема в MCS51, AVR, PIC, STM8, 8bit
хм, а если я создам массив большой >1 Кб а памяти ОЗУ у меня всего 1Кб, тогда чего будет динамическая подгрузка данных из флэши?)) -
спецификатор static
John851 ответил John851 тема в MCS51, AVR, PIC, STM8, 8bit
хм, в чем разница объявления глобальной переменной в модуле? int abc; static int abc; Разницы ведь никакой, переменная так и останется глобальной в пределах видимости модуля, дак зачем тогда еще и static прописывать? -
спецификатор static
John851 ответил John851 тема в MCS51, AVR, PIC, STM8, 8bit
Еще немного про ОЗУ: А как происходит работа с ОЗУ? Переменные туда попадают при каждом старте МК или зашиваются при прошивке? Почему такой маленький объем этой памяти? что означает спецификатор inline перед функцией? как это отразится МК, т.е. она будет какая то особая? -
спецификатор static
John851 ответил John851 тема в MCS51, AVR, PIC, STM8, 8bit
абсолютно все переменные попадают в ОЗУ? или есть исключения? -
спецификатор static
John851 опубликовал тема в MCS51, AVR, PIC, STM8, 8bit
Добрый день, в какой памяти AVR хранится переменная объявленная со спецификатором static? есть ли в avr libc (поставляемой вместе с WinAvr) атомарная операция nop? -
я конечно могу выложить исходники, но не вижу в этом смысла, так как это библиотеки с моими небольшими доработками: на меге используется библиотека i2c из AvrLib (без с!) а на тини апликэйшен ноут от атмела, соответственно Using USI as an i2c slave
-
да я хотел уже было эту функцию основательно проверить, но времени пока нет на проверку