8051 Програмирање Синтак еррор Проблем

E

Embedded_Geek

Guest
Када сам прецизирао макро "# дефине" програм не добија компајлиран. То показује синтаксу грешке у следећој изјави РС = 0; РВ = 0; ен = 1; пун код је [цоде] # инцлуде # дефине РС П2 ^ 0 # дефине РВ, П2 ^ 1 # Дефине СР П2 ^ 2 СФР лдата = 0к90; инт лцдцмд (унсигнед цхар вредност); воид лцддата (унсигнед цхар вредност); воид МСДелаи (инт итиме); маин () {лцдцмд (0к38); МСДелаи (250); лцдцмд (0к0Е); МСДелаи (250 ); лцдцмд (0к01); МСДелаи (250); лцдцмд (0к06); МСДелаи (250); лцдцмд (0к86); МСДелаи (250); лцддата ('М'); МСДелаи (25); лцддата ('Д') ; МСДелаи (25); лцддата ("Е"), док (1);} воид лцдцмд (унсигнед цхар вредност) {лдата = вредност; РС = 0; РВ = 0; ен = 1; МСДелаи (1) СР = 0;} воид лцддата (унсигнед цхар вредност) {лдата = вредност; РС = 1; РВ = 0; ен = 1; МСДелаи (1) СР = 0;} воид МСДелаи (инт итиме) {инт и, ј ; фор (и = 0 и
 
Ја не користим 8051 али # дефинише се фиксирају - не можете их променити у вашем програму као што покушавате да урадите. Кеитх
 
као што можете видети у вредност се не мења у мом програму.
 
[Куоте = ајисхгопалр] као што се може видети у вредност се не мења у мом програму [/ куоте]. Али, то је. На врху направите РВ, П2 ^ једнака 1, а касније покушате да кажете рв = 0. Када # дефине нешто што само може да га користи, а не да га промените. Кит [сизе = 2] [цолор = # 999999] Аддед после 6 минута: [/ цолор] [/ сизе] Можда ће радити ако сте ставили га цитира роунд - # дефине РВ "П2 ^ 1", али ја нисам експерт за Ц . Кеитх
 
на пример, у мом програму сам користио у мом програму РС. током састављања "РС" ће једноставно бити замењен П2 ^ 0. Када користим П2_0 уместо П2 ^ 0 онда ради без проблема. Ја не могу да разумем шта је проблем.
 
Нажалост, то је од мог области. Можда је специфичан за ваш компајлер или 8051. Кеитх
 
Здраво, постоји начин за ваше апликације. ако кодирање у Кеил, затим користећи испод кода уместо вашег, # инцлуде сбит РС = п2 ^ 0; сбит РВ = п2 ^ 1; сбит СР = п2 ^ 2; / / ......... .
 
[Куоте] ако кодирање у Кеил, онда користите код испод да уместо вашег, # инцлуде сбит РС = п2 ^ 0; сбит РВ = п2 ^ 1; сбит СР = п2 ^ 2; / / ...... .... [/ куоте] Да да добро ради. Али хоћу да знам зашто # дефине изазива проблем.
 
хеј само да се осврнемо на Ур рег51.х фајла Како Нулта или одговарајући бит сваки порт је повезан и написан у том фајлу заглавља .. Ово ће решити проблем Ур Н ћете избећи забуну Ур ....
 
Ајисхгопаир има решење, испод је пример драјвер. # Инцлуде # инцлуде "делаи.х" сбит ЛЦД_РС = П1 ^ 0; / / Регистрација изаберите сбит ЛЦД_Е = п1 ^ 1; / / # дефине Омогући ЛЦД_СТРОБЕ ((ЛЦД_Е = 1), (ЛЦД_Е = 0)) / / време у милисекунди ДелаиМс воид (унсигнед цхар ЦНТ) {ЦНТ = 2 * ЦНТ; до {ДелаиУс (500);} а (- ЦНТ = 0!);} / / Пошаљи Прикажи лцд_врите воид (унсигнед цхар ц) {унсигнед цхар МОВИТ ; МОВИТ = (Ц >> 2); П1 = (П1 & 0кЦ3) | (МОВИТ & 0к3Ц); ЛЦД_СТРОБЕ; МОВИТ = (Ц
 

Welcome to EDABoard.com

Sponsor

Back
Top