200 сообщений в этой теме

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

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

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

нет. каким софтом программируете?

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


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

PICKit 3 Programmer (Beta Release)

Пробовал МПлабом - такой дурной программы я не видел ещё. Так всё запутано и сложно, и постоянно ошибки выдаёт. Разбирался-разбирался и плюнул на неё, перешёл на PICKit 3 Programmer и всё им прекрасно шилось до последнего раза. Комп в норме, программатор тоже. Другую прошивку норм шьёт, которая на СИ. Но я его почти не знаю и нормального справочника по СИ для PIC нету, а прошить чипы надо как можно скорей.

Изменено пользователем дямон

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


Ссылка на сообщение
Поделиться на других сайтах
IMXO    1 054
и нормального справочника по СИ для PIC нету,
вы это серьезно?... язык Си (одинаков для любых контроллеров)... Изменено пользователем IMXO

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


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

Всем привет, выручайте :help:

Я уже писал выше в чём моя проблема, но напишу ещё раз, тк прошло уже пол года, а не сдвинулось ничего

У меня не работает ни одна программа которую я пишу на пик бэйсике. Причём "неработать" стало внезапно, будто провод отрезали :-(

Думал, что накосячил в программе ( делал ШИМ контроллер двигателя, причём первая версия программы исправно работала) - написал простую мигалку - порт Б переключается с 0 на 1 с периодом 0,5 секунды. Эта мигалка тоже не запустилась. Потом Kinoton написал мне такую же мигалку, без понятия на чём - его программа нормально мигает светодиодом - значит программатор в норме!

Думал что компилятор тупит - пробовал на 3(!!!) компах везде всё одинаково - моя программа не работает (никакая) а программа Kinoton пашет как трактор. В чём косяк? Пробовал разные версии компиляторов - не помогло

Пробовал Flowcode - он тоже не работает - раньше работал, правда только на 1 компе пробовал.

Вот моя мигалка:

define osc 20
trisB = %00000000
portB = %00000000
main:
portB = %00000000
pause 1000
portB = %11111111
pause 1000
goto main
end

Изменено пользователем дямон

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


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

МК - 16f877a, пробовал так-же и на 870 компилить - ноль. Тут прошивка на 877а

код басика:

define osc 20
trisB = %00000000
portB = %00000000
main:
portB = %00000000
pause 1000
portB = %11111111
pause 1000
goto main
end

Hex:

:100000002328A301A200FF30A207031CA307031C9F
:100010001E280330A100E6300F200328A101FC3E7A
:10002000A000A109031C1A28FF300000A007031834
:100030001528A0076400A10F1428080083130313D8
:100040008312640008008316860183128601033040
:10005000A300E8308A010220FF3086000330A300AD
:10006000E8308A0102208A01262863008A013528A7
:02400E00753FFC
:00000001FF

ассемблер басика:

; PICBASIC PRO(TM) Compiler 2.50c, (c) 1998, 2008 microEngineering Labs, Inc. All Rights Reserved. 
PM_USED   EQU 1
INCLUDE "16F877.INC"

; Define statements.
#define  CODE_SIZE   8
#define  osc   20
RAM_START		 EQU 00020h
RAM_END		   EQU 001EFh
RAM_BANKS		 EQU 00004h
BANK0_START	   EQU 00020h
BANK0_END		 EQU 0007Fh
BANK1_START	   EQU 000A0h
BANK1_END		 EQU 000EFh
BANK2_START	   EQU 00110h
BANK2_END		 EQU 0016Fh
BANK3_START	   EQU 00190h
BANK3_END		 EQU 001EFh
EEPROM_START	  EQU 02100h
EEPROM_END	    EQU 021FFh
R0			    EQU RAM_START + 000h
R1			    EQU RAM_START + 002h
R2			    EQU RAM_START + 004h
R3			    EQU RAM_START + 006h
R4			    EQU RAM_START + 008h
R5			    EQU RAM_START + 00Ah
R6			    EQU RAM_START + 00Ch
R7			    EQU RAM_START + 00Eh
R8			    EQU RAM_START + 010h
FLAGS			 EQU RAM_START + 012h
GOP			   EQU RAM_START + 013h
RM1			   EQU RAM_START + 014h
RM2			   EQU RAM_START + 015h
RR1			   EQU RAM_START + 016h
RR2			   EQU RAM_START + 017h
_PORTL			 EQU  PORTB
_PORTH			 EQU  PORTC
_TRISL			 EQU  TRISB
_TRISH			 EQU  TRISC
INCLUDE "UNTITL~1.MAC"
INCLUDE "PBPPIC14.LIB"
MOVE?CB 000h, TRISB
LABEL?L _main
MOVE?CB 000h, PORTB
PAUSE?C 003E8h
MOVE?CB 0FFh, PORTB
PAUSE?C 003E8h
GOTO?L _main
END?
END

mac файл:

NOLIST
; PICBASIC PRO(TM) Compiler 2.50c, (c) 1998, 2008 microEngineering Labs, Inc. All Rights Reserved. 
LABEL?L macro Label
    RST?RP
   ifdef PM_USED
    LALL
Label
    XALL
   else
Label
   endif
   endm
END? macro
   local loop
loop    sleep
    L?GOTO  loop
   endm
GOTO?L macro Label
    L?GOTO  Label
   endm
PAUSE?C macro Cin
   if (((Cin) >> 8) == 0)
    MOVE?CA Cin
    L?CALL  PAUSE
   else
    MOVE?CB (Cin) >> 8, R1 + 1
    MOVE?CA low (Cin)
    L?CALL  PAUSEL
   endif
   endm
PAUSE_USED = 1

LIST

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


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

Я так думаю в начале программы надо выставить конфигурацию программирования , затем выставить нужные нам порты на вход_выход , если надо их обнулить... ( выставить на них логический 0 ), значит сделать это.

Ну , а затем только приступать к переходу на метку основной программы.....

На сколько я знаю... Пишиться вот так примерно....

Config wdt_off, lvp_off, pwrte_on..... Ну и так далее и т.п.

Изменено пользователем Broka

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


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

эта программа работала всегда, с настройками по умолчанию. Единственно что указано - частота 20мгц и при компиляции - марка чипа, всегда так делал, всё работало

trisB = %00000000

- порт на выход

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


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

Порт В не подтянут. Кварц вместо HS XT стоит. В протеусе работает. Схему свою выкладывай.

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


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

схема:

два провода на + и -, кварц и светодиод через резистор к порт Б

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


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

Порт В не подтянут. Кварц вместо HS XT стоит. В протеусе работает. Схему свою выкладывай

Как он может подтянут быть , если он выходом сделан? Зачем здесь нужны подтягивающие резисторы? Не путайте человека......

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


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

Будет выход с открытым коллектором (стоком). Смотря как нагрузку включить. Если между ногой и плюсом, тогда можно и не подтягивать.

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


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

я нашёл проблему :yes:

короче суть вот в чём: программатор у меня - пиккит 3 и программка для него тоже - pickit 3 programmer. И надо выставлять слово конфигурации именно в pickit 3 programmer а не в самой программе. Она по умолчанию ставит источник тактирования не кварцевый

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


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

Cлепил моргалку в железе сегодня. Пробовал Бейсик, асм. Убедился - при TRISB.x = 0 внутренний pullup почему-то не нужен. Без него хорошо. Получается насчет подтяжки я был не прав. Привычка осталась от AT89... (там внешнюю лепить надо), однако. Протеус козлит! Не взирая на то, что есть на ноге MCLR (кроме чистого нуля) заставляет проект работать (F84, F877).

Изменено пользователем koms45

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


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

возник попутно вопрос. Ведь в пиках есть внутренние подтягивающие резюки? как их из пикбасика подключить? чтоб каждый раз внешние не ставить

Изменено пользователем дямон

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


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

наверно также как и в других компиляторах через регистр OPTION или нет?

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


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

День добрый для настройки подтягивающих резисторов нужен регистр OPTION,

В PicBasicPro он прописывается так :

OPTION_REG = %............

А в частности OPTION_REG / bit7 / RBPU (PORTB Pull-Up Enable bit) смотрим даташит на контроллер Pic16F877A стр 23. Удачи

Изменено пользователем Kinoton
  • Одобряю 1

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


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

asm

OPTION_REG.7 = 0

endasm Учи матчасть .

Изменено пользователем koms45
  • Одобряю 1

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


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

Проблемка, однако.

Протон IDE. Считанные с датчика BMP180 по I2c данные кудой-то пропадают. Суть вопроса:

Dim var As Byte

Busin $EF, $AA, [var]

Print At 1,1,Dec var

На дисплее (в железе) наблюдаю символ в виде ноля. Цепляю лог.анализёр. Вижу что устройство работает нормально, протокол понимает, ответило 1F. А на дисплее ноль.

МК 16Ф627.

Изменено пользователем koms45
  • Одобряю 1

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


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

Всем привет, необходимо подключить экранчик от нокиа 5110 к пику, он вроде как по SPI протоколу пашет - скиньте образец на басике, кому не жалко) Пожалуйста)

Экранчик у меня такой есть, заведомо рабочий - тк с ардуино работает стабильно, но есть крайне острая необходимость всунуть его в прибор с PIC16F877

SPI пробовал программно организовать, но выводился всякий шлак. Мне нужен пример, где можно хотя бы вывести просто точку в определённом месте. Самое простейшее. Заранее спасибо :)

Nokia-5110-LCD.jpgBEST-BI00079-2.jpg

Изменено пользователем дямон

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


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

Что там в SPI может быть замудрёного ? Выставил данные, дал строб. Всё. Обычное ногодрыганье.

Язык - дело второстепенное. Читайте доку на экран. Скорее всего неправильно управляете им.

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

    • Автор: karomag
      Добрый день.
      Экспериментирую с подключение 7-сегментного индикатора к мк stm32. Индикатор с общим катодом. Соответственно для вывода цифры необходимо на анод каждого сегмента подать 1, а на общий катод 0. И тут я не могу понять какие токи будут через порты. Теоретически, пины МК подключенные через резистор 300 Ом к аноду (напряжение МК 3.3 В) то ток будет 4 мА, тогда на общем катоде должно быть 7 * 4 = 28 мА (цифра 8, т.е. горят все сегменты). Т.е. это небольшое, но превышение макс тока на ногу 20 мА. И надо общий вывод подключать через транзисторный ключ.
      Взял мультиметр. Результаты замера: ток каждого сегмента ~2.5 мА, ток общего катода 5 мА. Вот тут я подумал о школе Хогвардс))) Как все таки рассчитывается все таки ток на общем выводе? 
    • Автор: art_budka
      Ищу подрядчика для разработки проекта робота-рисовальщика. Есть бюджет, ТЗ. 
      Устройство представляет собой манипулятор передвигающий головку в плоскости XY в пределах жесткой рамы на которой установлены двигатели и направляющие перемещения. Головка представляет собой блок, отвечающий за передвижение закрепленного в фиксаторе объекта-пера по оси Z на расстояние до 20 мм. Фиксатор на элементе подъёма головки должен обеспечить жесткое закрепление предметов массой 10 - 80 грамм - кистей, шариковых ручек, карандашей и маркеров диаметром от 5 до 20 мм.
      Решение необходимо для обеспечения точных, многократно повторяющихся перемещений “пера” над плоской поверхностью. Для формирования движений в устройстве должна быть реализована электромеханическая схема, подключенная посредством USB-интерфейса к персональному компьютеру для отправки команд на манипулятор и получения обратной связи от контроллера манипулятора. 
      ТЗ, смета и бюджет через art_budka@rambler.ru 
    • Автор: green_whale
      Доброго времени суток.
      Собственно, сразу к делу. Необходимо измерить вч напряжение (частота порядка 20кГц, максимальная амплитуда 75мВ) с помощью микроконтроллера (скорее всего будет использоваться Arduino).
      Форма входного сигнала - пила (возрастает от минимального значения до максимального). Сигнал однополярный.
      Измерить нужно именно максимальное значение входящего сигнала. Измерение должно быть весьма точным (желательно, чтобы погрешность не превышала 1-2%).
      Есть пару идей :
      1. Сгладить сигнал, используя пиковый детектор (сможет ли сигнал такой частоты и формы зарядить конденсатор?).
      2. Использовать цап для генерации постепенно снижающегося напряжения и аналоговый компаратор.

      Надеюсь, кто-нибудь уже решал подобную проблему и сможет помочь советом или схемой.
    • Гость мистер_чувак
      Автор: Гость мистер_чувак
      Здравствуйте. Нашёл свои старые китайские портативные колонки, которые давно уже разобрал и потерял некоторые провода. Помогите разобраться, что к чему соединять, чтобы работало.
      фотка1
      фотка2
      фотка3
      фотка4
      фотка5
      фотка6
      фотка7
    • Автор: butyavk
      Компания "Диаконт" приглашает на собеседование по вакансии инженер-программист микроконтроллеров.
      Мы производим и поставляем современные приборы управления электроприводами для различных отраслей отечественной промышленности.
      Пополняем нашу команду программистов (готовы принять 2-3 кандидатов с различным опытом работы)!

      Основные обязанности:
      Разработка программного обеспечения для блоков управления приводами и др. вычислительных систем.
      Программирование на C++ микроконтроллеров фирмы Texas Instruments и НИИЭТ на базе ядра ARM Cortex-M4.
      Поддержка и доработка существующего программного обеспечения.
      Участие в научно-исследовательских и опытно-конструкторских работах.
      Участие во внедрении систем на объектах (редкие командировки).

      Требования к кандидатам:
      Хорошее знание схемотехники;
      Знание методов разработки и проектирования ПО для микроконтроллеров и опыт работы с их периферией;
      Знание основ управления электроприводами и ТАУ;
      Знание языков программирования высокого уровня (C++, C);
      Знание современных методов разработки ПО (ООП, ...);
      Знание английского языка (чтение технической документации);
      Приветствуется знание Python, Matlab/Octave;
      Дополнительным плюсом будет опыт автоматизированного тестирования встроенного ПО.

      Условия:
      Оплата полностью белая (на руки в зависимости от знаний и опыта от 50 000 руб до 100000 руб). Но, готовы обсуждать!;
      Карьерный и профессиональный рост;
      Предприятие с комфортными условиями труда на севере города;
      ДМС;
      График работы понедельник - пятница 9:00-17:40;
      Плавающее начало работы с 8:00-10:00;
      Льготное питание в столовой на территории предприятия;...

      Ключевые навыки
      Программирование микроконтороллеров
      C/C++
      Управление электродвигателями

      Адрес
      Санкт-Петербург, ул. Учительская 2, м. Гражданский проспект

      Тип занятости
      Полная занятость, полный день

      Резюме лучше отправлять на rykov@diakont.com