РАДИОСХЕМЫ



СТАРЫЙ ФОРУМ

Форум на ЭЛВО


РАДИОФОРУМЫ


СХЕМЫ И СТАТЬИ



Архив - только для чтения
Прошивка МК PIC
Сообщение # 51        
[)еНиС
аватар
  Постов: 3074   Друзья 
Хээлп! Короче чуть чуть с microPascal'ем разобрался, начал писать простую программу. Вбиваю к примкру:

Quote

PORTA0 := 0xff; //
Delay_ms (3000); //
PortA0:= 0x00 ; //
delay_ms (100); //



И когда нажимаю типа проверить правильность программы, он мне подчеркивает строчку

Quote

PORTA0 := 0xff; //


Если я в этой строчке просто прописываю порт, без указания бита (portA), то он читает программу дальше и опять тормозит где у меня написано portA1

Теперь вопрос как всетаки правильно написать нужный мне бит? В интернете пытался найти типа обучалки- такая фигня или просто написано как включить и создать проект, или только начальные конфигурации (без основной программы). Даже подсмотреть негде sad
Сообщение # 52        
SssaHeKkk
аватар
  Постов: 2291   Друзья 
ну чисто логически порт А там один и бит который ты устанавливаешь пишется здесь 0xff
...например 0b00000001 (токо ты это сам понимаешь в двоичной)...не думаю что для пиков и аврок есть разница в этом месте
Сообщение # 53        
[)еНиС
аватар
  Постов: 3074   Друзья 
На всякий случай вот вся программа, может еще косяки будут shy

Quote

{кварц 4МГц МК pic16F628 }

program светофор;

begin
CMCON := CMCON or 0x07; // turn off comparators

TRISA := 0; // set direction to be output
TRISB := 0; // set direction to be output

while TRUE do
begin

зеленый горит
PORTA0 := 0xff; // горит зеленый СД
Delay_ms (3000); // задержка 3с
PortA0 := 0x00 ; // потух зеленый СД
delay_ms (100); // задержка 100мс


Зеленый мигает
PortA0 :=0xff ; // горит
delay_ms(500) ; // задержка
PortA0 := 0x00 ; // потух
delay_ms (500) ; // задержка
PortA0 :=0xff ; // горит
delay_ms(500) ; // задержка
PortA0 := 0x00 ; // потух
delay_ms (500) ; // задержка
PortA0 :=0xff ; // горит
delay_ms(500) ; // задержка
PortA0 := 0x00 ; // потух
delay_ms (100) ; // здержка

желтый горит
PORTA1 := 0xff; // горит желтый
Delay_ms (3000); // задержка 3с
PortA1 := 0x00 ; // потух
delay_ms (100); // задержка

горит красный
PortA2 := 0xff; // горит
delay-ms(3000) ; // задержка 3с
portA2 := 0x00 ; // потух

горит желтый
PORTA1 := 0xff; //
Delay_ms (3000);
PortA1 := 0x00 ;
delay_ms (100);

end; // Endless loop
end.


все начало до слова begin это все я использовал по умолчанию, заисключением верхних комментариев

Добавлено (18.09.2012, 21:01)
---------------------------------------------
SssaHeKkk, т.е. вот этой самой 0хFF можно здавать бит? Я то думал это просто лог 1 для всего порта)

Добавлено (18.09.2012, 21:03)
---------------------------------------------
Только я чего не догоняю опять, помню гдето в какойто теме было написано как)

это какой бит получается 0b00000001 ?

Сообщение # 54        
SssaHeKkk
аватар
  Постов: 2291   Друзья 
ну ясен пень...ты забыл чему тебя учили...что мы сначала устанавливали определенные порты на входы/выходы а потом выдавали туда логич 1/0...все это мы сначала писали в рабочий регистр R16 а потом отправляли куда надо....для пиков знаю что там все напрямую пишется

Добавлено (18.09.2012, 21:07)
---------------------------------------------
отчет идет справа начиная с 0...
блин ден какие проги если ты основы не помнишь???

Добавлено (18.09.2012, 21:07)
---------------------------------------------
пройдись по записям...или Серега зря время тратил что ли?

Сообщение # 55        
skateman
аватар
  Постов: 2201   Друзья 
Anton-Ukraine, ищи на сайте - есть аж 2 штуки проверенных

Добавлено (18.09.2012, 21:14)
---------------------------------------------
SssaHeKkk, в пиках немного по другому все устроено

Добавлено (18.09.2012, 21:15)
---------------------------------------------
Порты надо сначала настроить, вроде как регистр TRISx, а потом уже и выдавать в них данные

Сообщение # 56        
SssaHeKkk
аватар
  Постов: 2291   Друзья 
skateman, и че там с установкой тож по другому?...ну тада ден извини...я накосячил

Добавлено (18.09.2012, 21:17)
---------------------------------------------
илипро цифры я правильно ему сказал?...меня интересует цифры 0x00...то что с остальным я не прав т.к. не учил и не знаю насчет этого

Сообщение # 57        
skateman
аватар
  Постов: 2201   Друзья 
0x00 - это тупо 00000000, 0xFF - это 11111111
Сообщение # 58        
[)еНиС
аватар
  Постов: 3074   Друзья 
Quote (skateman)
0x00 - это тупо 00000000, 0xFF - это 11111111


ну это понятно. Но до меня не доходит какой это бит? И как определить какой бит дает лог 1

Quote (SssaHeKkk)
ну тада ден извини...я накосячил

да ладно ниче страншного

Quote (skateman)
Порты надо сначала настроить, вроде как регистр TRISx, а потом уже и выдавать в них данные


в микропаскале по моему не надо ниче настраивать. Там при запуске программы выводится пример прошивки, там светододы подключенные ковсем портам мигают. Там только шапка:

begin
CMCON := CMCON or 0x07; // turn off comparators

TRISA := 0; // set direction to be output
TRISB := 0; // set direction to be output

while TRUE do

и ниже программа, у меня также только программа другая

Добавлено (18.09.2012, 21:29)
---------------------------------------------
насколько я понимаю в этой записи портА и портВ настраиваются на выход (set direction to be output)

Сообщение # 59        
SssaHeKkk
аватар
  Постов: 2291   Друзья 
[)еНиС, а может и не накосячил...попробуй выдать 1 на бит который те нужен

Добавлено (18.09.2012, 21:32)
---------------------------------------------
0b00000000 это никакие биты а точнее все на входы настроены...0b00000011...это настроены на выходы 0 и 1 биты

Добавлено (18.09.2012, 22:00)
---------------------------------------------
и у меня вопрос...а че ты забросил аврки...уже написал бы свой светофор

Сообщение # 60        
[)еНиС
аватар
  Постов: 3074   Друзья 
я не знаю) Я запутался( А на паскаль перешел потому что он более понятен. Щас попробую переписать и проверить...

Т.е. 0b00000000 это на всех битах ноль
тогда 0b00000001 это 0 бит
0b00000010 это первый бит. Так? biggrin

Добавлено (19.09.2012, 13:52)
---------------------------------------------
0х00 это 00000000
тогда как перевести к примеру 0b00000001 в такую же запись в шестнацитиричной системе типа как 0х00 или 0xFF

Поиск:

Внимание! Форум переехал на Tehnodium.ru



© 2010-2022 "Форум Радиосхемы". All Rights Reserved  Почта  PDA