Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
16.02.2008, 10:21
|
|
Временная регистрация
Регистрация: 11.12.2007
Сообщений: 79
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Что касается первого вопроса - то Тень же предложил передать адрес порта в функцию, я думал, что ты читаешь ветку.
Относительно того, что на функцию delay в Хайтеке без слез не взглянешь - то это не баг, а фича, которую давно исправили и никто той функцией, что идет в поставке, не пользуется, просто об этом мало кто знает почему-то...
Я прикрепляю к сообщению исправленный вариант, но ... надо бы еще куда-то выложить, я сам случайно это нашел.
О CCS досикус все сказал - это какая-то вещь в себе.
И исходники нужно выкладывать, а то читаешь некоторые сообщения - и решаешь, что человек похвастаться решил - один хекс и дизайн протеуса - пользы окружающим от этого ни на грош.
Прикрепленный файл: 2447942.rar
|
|
|
|
16.02.2008, 21:00
|
|
Временная регистрация
Регистрация: 05.06.2005
Сообщений: 84
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Сообщение от dosikus
|
Не надо ерничать...
Что ты просил в первом посте , то и получил.
1) Не зная какой компилятор ты используешь, что ты хотел услышать в ответ?
|
Хотел услышать то что спросил, что знаток Си может сказать про язык, содежит ли Си возможность работать таким образом с портами посредствам стандартных функций. Специально умолчал о компайлере, что бы на частности не переходить, потому как мы видим везде эти проблемы решаются по разному.
Сообщение от dosikus
|
3) Создавая подобные ветки будь добр , приводить хоть сумбурные но свои участки кода .( не все же как ЮРА знают, с чем тебя едят и как тебе помогать)
|
некогда было, когда вопрос писал 5 минут до автобуса оставалось, а хотелось к воскресенью уже результат получить
|
|
|
|
16.02.2008, 21:28
|
|
Временная регистрация
Регистрация: 05.06.2005
Сообщений: 84
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Сообщение от urry1
|
Что касается первого вопроса - то Тень же предложил передать адрес порта в функцию, я думал, что ты читаешь ветку.
|
Да читал конечно, просто когда очередь тени пришла уже разговор о компайлерах начался, мог бы и написать синтакс, это самое замороченное в данной ситуации...
Сообщение от urry1
|
Относительно того, что на функцию delay в Хайтеке без слез не взглянешь - то это не баг, а фича, которую давно исправили и никто той функцией, что идет в поставке, не пользуется, просто об этом мало кто знает почему-то...
Я прикрепляю к сообщению исправленный вариант, но ... надо бы еще куда-то выложить, я сам случайно это нашел.
|
почитал- заморочено как то. это ведь Микрочиповский хлопец сделал. А я просто пару строчек добавил в текст (лентяй же) и получилось две функции Delayus(до 100) и DelayUs(int)!! от 100 и дальше. Думаю для привыкших к родным функциям это будет интересней. А почему такая фича как раз понятно- иначе нельзя гарантировать абсолютно точный результат, который к тому же еще зависит от степени оптимизации кода. Поэтому если нужна абсолютная точность придется пользоваться оригинальными функциями...
Сообщение от urry1
|
О CCS досикус все сказал - это какая-то вещь в себе.
И исходники нужно выкладывать, а то читаешь некоторые сообщения - и решаешь, что человек похвастаться решил - один хекс и дизайн протеуса - пользы окружающим от этого ни на грош.
|
да без проблем, был бы спрос, будут и исходники...
Прикрепленный файл: 2447942.rar
|
|
|
|
17.02.2008, 22:42
|
|
Прохожий
Регистрация: 27.10.2007
Сообщений: 2
Сказал спасибо: 63
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Сообщение от urry
|
1. Компилятор берем отсюда – http://www.microchip.com/ MPLAB C18 Student Edition – для получения ссылки на закачку нужно региться , а также попутно
2. http://ww1.microchip.com/downloads/e...rade-v3_13.exe
Нормальную версию.
3. Делаем из студенческой версии нормальную. В принципе, можно оставаться и на студенческой, только раз в 2 месяца ее нужно сносить и ставить по новой. Вся операция проходит безболезненно. Но можно это обойти. Для этого :
Качаем отсюда http://www.remexpert.com/forum/dload...le&file_id=419
Распаковщик
Сначала устанавливаем студенческую версию , затем распаковываем нормальную (инструкция внутри архива) и заменяем файлы из студенческой версии распакованными.
|
Тысяча извинений за беспардонное вклинивание в разговор! ![Смущение](images/smilies/icon_redface.gif) Сайт remexpert переехал и последняя ссылка не работает. Попытался найти ее на форуме сайта - не вышло. Если есть возможность выложить другую ссылочку - не откажите, заранее премного благодарен.
|
|
|
|
18.02.2008, 10:18
|
|
Прописка
Регистрация: 11.07.2006
Адрес: Ru, Nsk
Сообщений: 249
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
поддержу seltec. Нужен распаковщик...
|
|
|
|
18.02.2008, 10:46
|
|
Временная регистрация
Регистрация: 11.12.2007
Сообщений: 79
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
вот
Прикрепленный файл: 9373839.rar
|
|
|
|
18.02.2008, 11:19
|
|
Прописка
Регистрация: 11.07.2006
Адрес: Ru, Nsk
Сообщений: 249
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
спасибо, все работает
|
|
|
|
25.02.2008, 19:44
|
|
Временная регистрация
Регистрация: 05.06.2005
Сообщений: 84
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Сообщение от urry
|
А вот хамить, автор ветки, не надо, хорошо ???
Вот тебе твой родной с18 - есть же самплы
Код:
|
#define tris_portA1 TRISAbits.TRISA1
#define input_portA1 PORTAbits.RA1
if (input_portA1 == 1) .....
#define BITSET(var,bitno) ((var) |= 1 ‹‹(bitno))
#define BITCLR(var,bitno) ((var) &= ~(1 ‹‹ (bitno)))
#define BITTST1(var,bitno) ((var) & (1 ‹‹ (bitno)))
#define 2 port_nogi
void (port_nogi)
{
if (BITTST1(PORTA,port_nogi)...... |
|
В общем в итоге как получатеся я был полностю прав в формулировании вопроса, для С18 ответ целиком в области языка Си. Передаешь по ссылке порт, ОТДЕЛЬНО номер бита (вывода) и потом твоим дефайном BITTEST проверяешь нужны бит. Тупо,длинно,что бы 7 бит проерить нужно 7 сдвигов сделать! но что есть. ВОт такой ответ от знатока Си я как получается и ждал, и не дождался.
Но у меня есть еще вопрос, если ты программировал на С18 точно сможешь мне помочь. Скажу сразу, все прочел прежде чем спросить!
unsigned char byte11, byte12, byte13, byte21, byte22, byte23;
bit transmitMode; //posibility of transmiting bytes flag
выше обьявление переменных и флага. вот переменные принимает компайлер, а бит не хочет, ни со статиком ни с авто, ни с чем! как объявить бит? (кусок взят из рабочей проги под Хай тек)
|
|
|
|
25.02.2008, 20:47
|
|
Временная регистрация
Регистрация: 14.04.2007
Сообщений: 65
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Ты напрасно по поводу сдвигов, если ты напишешь if (BITTEST( byte , 7 )) , он не будет сдвигать регистр 7 раз, а откампилирует как пропустить команду если бит равен 1.
А биты в хайтеке так и объявляются :
bit NameBit ;
Если внутри процедуры, то static.
|
|
|
|
25.02.2008, 20:52
|
|
Временная регистрация
Регистрация: 05.06.2005
Сообщений: 84
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
[quote="alkl"]Ты напрасно по поводу сдвигов, если ты напишешь if (BITTEST( byte , 7 )) , он не будет сдвигать регистр 7 раз, а откампилирует как пропустить команду если бит равен 1.
А биты в хайтеке так и объявляются :
bit NameBit ;
ты не прав друг, биттест это дефайн другой записи, в которой есть столько сдвигов, сколько написанно после запятой! И чтобы Си сформировал однопроцедурный код, нужны специальные добавки к языку, и в С18 данной добавк я не обнаружил! А в Хайтеке да, есть такое дело!
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 06:17.
|
|