2 334 сообщения в этой теме

antzol    2
Кто сталквался с шиной I2C?.....

Покажи хоть код.

На чём пишешь? Как реализуешь, аппаратно или программно?

У меня была проблема с I2C. Оказалось, что из-за прерываний, хотя реализовывал шину программно и они никаким боком ее не касались. Исправил всё полным отключением прерываний на время передачи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Быстрый заказ печатных плат

Полный цикл производства PCB по низким ценам!

  • x
    мм
Заказать Получить купон на $5.00

Я может не вовремя :) Помогите реализовать задержку с точностью до нескольких мкс на СИ, для pic16f84. встроеной задержки, как я знаю там нет, может кто подкинет готовую функцию

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
antzol    2

2DJ Димон

А какой компилятор используешь? В CSS PCWH есть функция delay_us(const int16 microsec).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Компилятор HI-TECH PICC, как-то так. Ещё есть такой CCS C Compiler но я ещё его не испытывал.

Кстати есть хороший сайт для новичков в освоении МК http://www.pcports.ru/ как мне кажется!

Изменено пользователем DJ Димон

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
antzol    2
Ещё есть такой CCS C Compiler но я ещё его не испытывал.

Я этот и имел в виду. Одну букву в названии перепутал... :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Этот компилятор на меня сругался 'Error: The selected compiler: "PCM" is not installed on this PC' почему-то.

я в HI-TECH нашёл файл с функцией DelayUs(x); х - время в мкс.

//-----------------------------------Задержка в мкс------------------------------------------

#ifndef XTAL_FREQ

#define XTAL_FREQ 20MHZ // Частота кварца в MHz

#endif

#define MHZ *1000L // Количество kHz в MHz

#define KHZ *1 // количество kHz в kHz

#if XTAL_FREQ >= 12MHZ

#define DelayUs(x) { unsigned char _dcnt; \

_dcnt = (x) * ((XTAL_FREQ)/(12MHZ)); \

while(--_dcnt != 0) \

continue; }

#else

#define DelayUs(x) { unsigned char _dcnt; \

_dcnt = (x) / ((12MHZ)/(XTAL_FREQ)) | 1; \

while(--_dcnt != 0) \

continue; }

#endif

//--------------------------------------------------------------------------------------------

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
antzol    2
Этот компилятор на меня сругался 'Error: The selected compiler: "PCM" is not installed on this PC' почему-то.

Странно... Это он говорит, что у него что-то не установлено для 14-разрядных пиков.

А так, в нем есть встроенные функции задержек (циклы, мкс, мс).

Просто указываешь в h-файле частоту тактового генератора в герцах:

#use delay (clock=5000000)

или

#use delay (clock=5000000, RESTART_WDT)

А в коде программы, где нужно, вставляешь, например, delay_us(X) или delay_ms(X).

И всё...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Bugrim    2

Подскажте, можно ли в MPLAB IDE (асемблер), в командах указывать назваеие регистров, бтов (н-р BCF STATUS,RP1)? В примерах пишется, а у меня не получается, может клацнуть гдето надо? :wacko:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ilya_rad    5

Можно, если в начале пишешь

include '16f84.h' - например. Указываешь свой контроллер только.

В этих файлах указаны регистры и биты, затем можно использовать, как у тебя в примерах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Bugrim    2
Можно, если в начале пишешь

include '16f84.h' - например. Указываешь свой контроллер только.

В этих файлах указаны регистры и биты, затем можно использовать, как у тебя в примерах.

***СПАСИБО***

:D

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
I2C    0

Возьмите и меня в обучаемые... Please... Железо и желание есть. Установлен PCWH Compiler v.4.049 & MPLAB IDE v.7.62.00.00.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Bugrim    2

Купил микросхему PIC16F876A-I/SP. Подскажите что означает буква "а", а то нигде не могу найти.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
antzol    2

В контроллерах с буквой "А" увеличено количество аналоговых портов (т.е. коммутируемых на АЦП), а также изменен способ программирования. А в остальном они ничем не отличаются от тех, что без буквы "А".

На нее нужно обращать внимание при выборе программатора, некоторые из них не могут программировать контроллеры с А.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ViKtor_VK    1

Всем привет!

Возникла проблема с PIC12F629 (начинаю осваивать).

Суть вот в чем: Нужно написать простенькую программу - зажеч светодиоды, порты GPI1,GPI2(Ген-ХТ, кварц 4МГЦ)

__CONFIG_XT_OSC_WDT_OFF_PWRTE_ON

Программу написал в MPLABe (компиляция прошла успешно).

Пробовал запустить в PROTEUSe(6.9sp5). Заливаю HEX-файл нажимаю на PLAY - ничего не происходит!

Все выводы в PIC12F629 не активны!

Пробовал сделать тоже на PIC16F84A - все получилось прекрасно. но этот ПИК дорогой, да и задача не

для него.

Подскажите что не так!

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Lexi    0

Выложите схему и прошиву будет смотреть

Изучайте СИ.

да и берите за основу хотябы PIC16F628A.

Их валом везде.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ViKtor_VK    1
Выложите схему и прошиву будет смотреть

Изучайте СИ.

да и берите за основу хотябы PIC16F628A.

Их валом везде.

По поводу изучения СИ - это ближайшая задача.

Сейчас изучаю PIC16F628A, а PIC12F629 нужен для конкретной небольшой задачи.

Схема и прошивка остались на работе, завтра утром все выложу. Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Lexi    0
По поводу изучения СИ - это ближайшая задача.

Сейчас изучаю PIC16F628A, а PIC12F629 нужен для конкретной небольшой задачи.

Схема и прошивка остались на работе, завтра утром все выложу. Спасибо.

Изучайте Си не в перспективе а сейчас, много гемора с себя снимете.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Bugrim    2
В контроллерах с буквой "А" увеличено количество аналоговых портов (т.е. коммутируемых на АЦП), а также изменен способ программирования. А в остальном они ничем не отличаются от тех, что без буквы "А".

На нее нужно обращать внимание при выборе программатора, некоторые из них не могут программировать контроллеры с А.

Привет!!! Спасибо большое. Где можно найти документацию которая указалаб на эти отличя (особенно режм программирования)

Где можно найти документацию которая указалаб на эти отличя (особенно режм программирования) на микросхему PIC16F876A-I/SP???

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Lexi    0

Если Вы про физическую схему подколючения - то разницы нет. Остальное делает программатор сам. А если про регистры банки памяти то сомторите в datasheet. Там все есть.

По воросу выше на 1 пост читаем http://www.microchip.by/files/87x_to_87xa.pdf.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ViKtor_VK    1

По поводу пика 12F629.

Cхемка простая сделана для выяснения "тормоза" ,поэтому описать ее быстрей, чем нарисовать:

К выводу GP1 присоединен резистор 330 ом за ним светодиод и на "землю".

К выводу GP2 присоединен резистор 330 ом за ним светодиод и на "землю". Вся схема.

Вот программа на АСМе:

; PIC12F629 Кварц 4 МГц.

LIST p=12F629

#include<p12f629.inc>

__CONFIG_XT_OSC_WDT_OFF_PWRTE_ON

;------------------------------------------------------------------------------------------------

; Определение положения регистров специального назначения.

;------------------------------------------------------------------------------------------------

GPIO equ 05h

Status equ 03h

TRISIO equ 85h

;------------------------------------------------------------------------------------------------

; Определение названия и положения регистров общего назначения.

;================================================================================================

RP0 equ 5 ;Присваивание 5 биту имени RPO регистра Status.

;------------------------------------------------------------------------------------------------

; Определение места размещения результатов операций.

;------------------------------------------------------------------------------------------------

w equ 0

F equ 1

;------------------------------------------------------------------------------------------------

; Текст рабочей части программы.

;------------------------------------------------------------------------------------------------

; Установка направления работы портов.( Переписано из ДШ по пикам).

;------------------------------------------------------------------------------------------------

Start bcf Status,RP0 ;Переходим в 0-й банк.

clrf GPIO ;Инициализация защелок GPIO.

movlw 0x07

movwf CMCON ;Каналы GPIO-цифровые входы-выходы.

bsf Status,RP0 ;Переходим в 1-й банк.

movlw .8 ;Значения для инициализации

;направления каналов GPIO (00001000).

movwf TRISIO ;Канал 3 настроен на вход-остальные на выход.

bcf Status,RP0 ;Переходим в 0-й банк.

;------------------------------------------------------------------------------------------------

d movlw .6 ;(00000110) на выводах GP1,GP2 установить "1"

movwf GPIO ;Зажеч светодиоды и больше ничего не делать.

goto d

end

В PROTEUSe на выводах ПИКА никакого движения (ни "0" ни "1" нет) симулятор ошибки не выдает.

ПО поводу изучения СИ-согласен .В основном все рекомендую книгу Ю.Шпака -Программирование PIC иAVR.

Что то еще есть по ПИКам на СИ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Lexi    0

В мои руки сначала попал компилятор, который описан в этой книге, а потом и сама книга. Теперь вот привык к нему ;). Но это как кому. Книга Кэригана в передоде. Там чистый Си++.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ViKtor_VK    1

Открыл сегодня microC - 6.0(Он установлен был раньше), начал просматривать примеры и нашел

похожий на мою задачу. В журнале Радиоаматор за 2006 год есть краткое описание работы в microC с примерами. :rolleyes:

Модифицировал пример под свою схему, ПИК взял 16F628A (компиляция прошла успешно),

потом залил HEX-файл в ПИК в PROTEUSe и схема заработала!!!!!! :lol:

Книга Кэригана у меня есть - теперь буду плотно ее изучать.

Теперь туже схему попробую сделать на 12F629 в microC. Спасибо. ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ViKtor_VK    1

Пробовал запустить PIC12F629, PIC12F675 в PROTEUSe (6.9sp5).

Ничего не выходит.

Брал готовые примеры из microC -компилировал-заливал в PIC12F629, PIC12F675 в PROTEUSe (6.9sp5)-тишина!!

Видно не хочет мой PROTEUS их обрабатывать :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ViKtor_VK    1

В железе пока не пробовал, остановлюсь на PIC 16F628A. переустановлю PROTEUS новую версию, попробую еще раз, а потом буду пробовать в железе PIC 12F629.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Похожие публикации

    • Автор: Dmitry Suhoruk
      Доброй ночи, мне бы не помешала помощь опытных людей. Дело в том что на днях у меня на сабе Genius GHT-s200 пошло замыкание по плате. выключил снял крышку сделал пару фото погуглил, оказалось сгорели ножки на tda7265. но дело в том что на задней стороне платы по ходу перегорела еще и дорожка.. есть опытные люди в этой сфере которые подскажут что куда пхать или на какую плату лучше заменить. ? 



    • Автор: paulb
      Есть задумка собрать вольтметр постоянного напряжения (до 1000В) на ГРИ, использовав за основу популярную схему часов. Либо на базе микросхемы ICL7107, если это возможно. Знающих прошу помочь.
    • Автор: admin
      Сайт Паяльник открывает обучающий видеокурс по AVR-микроконтроллерам.
      В этой теме "обратной связи" будем постепенно добавлять новые видеоролики с нашего канала. Здесь можно задавать вопросы, давать рекомендации, критиковать, оставлять отзывы и пожелания, а также запросы на тему будущих видеоуроков.
      Ведет видеокурс наш форумчанин kobzar.
      Профиль пользователя на сайте cxem.net. Там же финансовые реквизиты для тех, кто пожелает финансово отблагодарить автора данного видеокурса
      Подписка на YouTube канал
      Краткий обзор сред разработки для различных микроконтроллеров на сайте: http://cxem.net/software/soft_mcu.php
      Внимание начинающим! Перед тем, как задавать вопросы не по теме видеоуроков, прочитать:
      Статьи по МК для начинающих
      Книга по программированию микроконтроллеров AVR
      Также, здесь же на форуме рядом с этой темой смотрите прикрепленные темы: для начинающих, по языку Си и т.д. Все вопросы не по видеокурсу задавайте только там. С этой темы подобные вопросы удаляются
      Кракозябры вместо русских букв
      Ребята - спешу сообщить что найден метод борьбы с кракозябрами вместо русских символов, при работе с ЖК. Дело в том, что у некоторых из вас, проект создается в кодировке UTF-8, а наша библиотека работает только с ср1251
      Фикс:
      1.Открываем проект
      2. File - Advanced Save Options
      3. Вместо кодировки UTF-8 выбираем Cyrillic(Windows) - cp1251
      Сохраняем, сохраняем проект - компилируем!
      Добавлено 12.01.16 :
      Изменённые версии библиотеки lcd_5110 :
      От Alex - http://forum.cxem.ne...20#comment-2287906
      От COKPOWEHEU - http://forum.cxem.net/index.php?showtopic=136229&st=1840#comment-2373820
       
  • Сообщения

    • Добавить вату в ас,если возможно добавить магнит(приклеить отталкивающей стороной) конешно ачх на средних может изменится
    • Всем привет! Помогите подключить провода на место. Вытяжка Bosch DKE 955 D. На первом фото провода которые нужно подключить, в левой руке от блока кнопок (синий, красный, серый), а в правой от двигателя (красный, коричневый, заземление). Места куда все эти провода подключаются на втором (кабель питания) и третьем (пусковой конденсатор) фото. Буду благодарен, все что больше трех проводков вызывает шок и удивление.
    •  Так как луче поступить?
    • Нокии без среднего контакта работают отлично,контроллер зарядки не ругается!!!Самсунги,флаи,эрикссоны-мозго..ка!!!
    • 1) Да 2) Смотря какие. 3) Где Вы увидели проходные конденсаторы???
    • Не кичусь и не хвалюсь -работал на заводе соответствующего направления, где понятия секретности и допусков - реальность.    Просто вывожу тебя,   лгуна,  на чистую воду.  Ибо количество вранья твоего уже не поддается  какому-нибудь  измерению.  Начальник аппаратной ЗАС, говоришь?  По Европе, говоришь....Можно было колесить, но только в случаях:   - гастролей (жесткая проверка КГБ, рекомендации минкульта, но  ты не артист), -научные конференции (жесткая проверка, на научного сотрудника не тянешь),  резидент спецслужб (О-о-о,  ты не подходишь), - стукачок КГБ (эти катались, но опять же не похож),  - жополиз  райкома (горкома) партии(тоже, вроде, не похож).  Так что с твоим редио-теле-центром  максимум,  -Болгария, или разок, Польша.   Сказки оставь внукам Может, хватит?  Может, сбросишь свою спесь  и чванство  и начнешь  нормально общаться?  Или тебе репутация хама, причем на  всех "меломенских" форумах больше по душе?.
    • У меня есть возможность просто поменять лицевую панель, но...   Спасибо, этот момент я не видел, теперь да, понимаю что ой. Ради интереса измерил импеданс ас, виден резонанс на примерно 70 гц. Я так понимаю на этой частоте и будет дозванивать? Такой глупый вопрос, а по типу пища, льзя ли задемпфировать этот резонанс LC цепочкой? Подозреваю что фильтр разъедется)).  В любом случае понятно что годной ас у меня таки не получилось, однако данные ящики переделывать не буду, и динамики мне не понравились, если про двухполоску говорить, да и нужны были не ас для вдумчивого прлслушивания, а говорилка с радио на фоне. Просто это была возможность получить практический опыт в построении, измерении и расчете ас. Так то у меня еще партия динов для трехполоски ждет своего часа, вот их буду вылизывать пока не запоет как надо. Так как себе...