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

КЭС    1 108

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

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


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

PICKit 3 Programmer (Beta Release)

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
IMXO    1 277
и нормального справочника по СИ для 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    73

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

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


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

схема:

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

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


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

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

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

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


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

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

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


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

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

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

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


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

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

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

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


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

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

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

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


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

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

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


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

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

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

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

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

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

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


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

asm

OPTION_REG.7 = 0

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

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

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


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

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

Протон 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    546

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

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

    • Автор: GeloMik
       
      Я новичок в программировании AVR контроллеров, хотя знаю +/- C++.
      Проблема заключается в том, что я не могу написать прошивку к своему маленькому проекту. Используемый мною контроллер - ATTiny45. У него на борту имеется 1 АЦП с выходом на 4 ноги. Нужно, чтобы фактически одновременно брался замер с 3, 4 и 5 порта по АЦП, и при появлении 1 на одном из них МК должен подать 5В на 1 или 2 порты. Источник АЦП AREF. 
      Сюда прикреплю схему самого робота, если кого не затруднит помочь написать прошивку, буду очень благодарен 

    • Автор: Stratix
      Здравствуйте, у меня проблема с прошивкой разных устройств из-за программаторов. Дело в том что у меня есть некоторое количество китайских и самодельных программаторов для разных производителей, с ними постоянно какие-то проблемы, некоторые отказываются нормально работать на windows 10(другие версии ПО не устраивают), другие не работают с последними версиями сред разработки и т.д. Так же нужно прошивать схемы памяти. Хочу прошивать устройства без постоянной сборки программаторов и неудобств. Думаю о двух вариантах: взять оригинальные программаторы для всех производителей: altera, xlinx, arm, pic, avr(некоторые найти сложно, например оригинальный usb-blaster и высокая стоимость в сумме), второй вариант: взять универсальный программатор, который бы поддерживал все новые микросхемы, а вот с этим проблема, большинство универсальных программаторов не шьют stm, плис. Есть ли вообще реально универсальные программаторы? Мне было бы намного удобнее если на столе б лежал один программатор, а не куча. Смотрел список микросхем chipprog-48, пока что самый большой, к сожалению не поддерживает новые fpga, например: cyclone IV. Связывался, сказали что поддержки не будет и в будущем. Стоит ли взять chipprog-48 в 2018 году или есть программаторы лучше, с большим списком микросхем?
    • Автор: Михаил Савин
      Добрый день. Подскажите есть устройство на плате для регулирования дроссельной заслонки от Калины. Довольно специфическое, индивидуальная разработка, аналогов не купить. Основывается на микроконтроллере ATXMEGA128A3U AU 1651. Возможно ли скопировать залитый в него код что бы изготовить данное устройство ? Или это невозможно в принципе ?
    • Автор: Дмитрий Дмитрий
      Здравствуй, добрый Алл.
      Задумал сделать сенсорный выключатель (блокировщик) двери. Задача: при двойном прикосновении к поверхности пластикового выключателя подать на управляющий контакт +5В.
      Реализация:  Использовать контроллер емкостного сенсора AT42Q1010, микроконтроллер PIC10F200.
      Логика: при полном закрытии двери,  срабатывает геркон, подается +5В на схему. На схеме расположены емкостной контроллер AT42Q1010 и микроконтроллер PIC10F200. Емкостной контроллер при прикосновении пальца дает сигнал на цифровой выход. Этот выход соединен со входом PIC10F200. В PIC10F200 крутится программа, определяющая двойное прикосновение, с заданными промежутками времени (ориентируюсь на обычный двойной клик мыши). Как только определяет двойной клик - подает на три GPIO выхода +5В, и уходит в пустой цикл, до снятия питания.
      С одного GPIO питаются светодиоды: 2 шт, 1.8 В, 1 мА, удалены на 3 метра, подключены кабелем 3х2.5 мм2.
      Со второго GPIO активируется герконовое реле 5В, 10мА, размыкающее наружную клавишу открытия двери.
      С третьего GPIO питаются светодиоды: 2 шт, 1.8 В, 1 мА, удалены на 3 см. Они находятся в том же выключателе, где будет смонтирована схема.
      Для повторного запуска нужно открыть - закрыть дверь. Питание будет отключено-включено, программа запустится с нуля.
      Вопросы:
      1. Нормально ли цеплять светодиоды прямо к PIC контроллеру, на такую дистанцию? Потери посчитал, выходит в районе 1%. Думаю проблем быть не должно, но чувствую кощунственность решения.
      2. Нормально ли PIC контроллер отнесется к многократному хард ресету? Дверью пользуюсь 50 раз в день. Это каждый раз снятие питания, включение обратно.
      3. Какое время на загрузку ожидать от схемы? Т.е. через какое время после полного закрытия двери я смогу заблокировать дверь. Судя по документации на емкостной контроллер , оно меньше 100 мс. Микроконтроллер PIC около 30 мс (reset time). Я нигде не ошибся?  
      4. Нужно ли вставлять резистор между герконовым реле блокировки двери и микроконтроллером? Расстояние от микроконтроллера до реле около 2 метров. Насколько я понимаю, желательно использовать токоограничительный резистор около 1 кОм, но методика точного расчета номинала мне не известна.
      5. Нужно ли вставлять резистор между дальними свтодиодами и контроллером? Ближним и контроллером? Для понижения напряжения я планирую в обоих случаях использовать резисторы 1.5кОм и последовательно подключать два диода 1.8 В,  1 ма. Этого достаточно? Диоды и резистор располагаются на крышке выключателя.
      6. Для подбора конденсатора нужной емкости для сенсора прикосновения хочу использовать макетную плату (такая пластиковая, с много рядов отверстий), и кучку кондеров из чип и дипа, около рекомендованной емкости.  К ним припаять проводки и по очереди проверять, каждый раз скидывая питания. Это верная методика или есть способ лучше?
      7. Имел ли кто дело с таким емкостным контроллером? Насколько plug and play решение? На внутреннюю часть выключателя планирую наклеить медную фольгу, номиналы конденсаторов и резистора подобрать на столе. Потом все собрать на печатной плате, смонтировать в корпус выключателя. Не уплывет ли со временем точность такого сенсора? Может быть на плате предусмотреть какие-то элементы для подстройки в будущем?
      8. Я выбрал самый младший из PIC  контроллеров. Могу ли я столкнуться с нехваткой памяти в своей задаче? Портов хватает. Может быть я не учел какой-то еще ресурс, которого не хватит для выполнения этой задачи?
      Даташит на емкостной контроллер  https://ru.mouser.com/datasheet/2/268/40001946A-1145216.pdf
      Даташит на PIC  контроллер http://ww1.microchip.com/downloads/en/DeviceDoc/40001239F.pdf
      С уважением,
      Дмитрий.