| Автор |
Съобщение |
|
kirchi
Ранг: Минаващ
Регистриран на: Сря Яну 03, 2007 8:52 pm Мнения: 89 Местоположение: Димитровград
|
 Какво означава това?
DelayUs(x) { unsigned char _dcnt; \
_dcnt = (x)/((12MHZ)/(XTAL_FREQ))|1; \
while(--_dcnt != 0) \
continue; }
Кокво означава "|1" на втория рад?
|
| Вто Авг 21, 2007 10:07 am |
|
 |
|
Реконструктор
Ранг: Форумен бог
Регистриран на: Съб Сеп 25, 2004 12:32 pm Мнения: 8382 Местоположение: София
|
Дигаш най-младшия бит. 
|
| Вто Авг 21, 2007 10:08 am |
|
 |
|
kirchi
Ранг: Минаващ
Регистриран на: Сря Яну 03, 2007 8:52 pm Мнения: 89 Местоположение: Димитровград
|
|
| Вто Авг 21, 2007 10:13 am |
|
 |
|
zaphod
Ранг: Форумен бог
Регистриран на: Нед Юли 24, 2005 10:28 am Мнения: 2658
|
ако беше _dcnt-- а не --_dcnt , щеше да може и без него, че и по-добре щеше да е. а това MHZ как минава през компилера ми е някаква мистерия...
|
| Вто Авг 21, 2007 1:16 pm |
|
 |
|
ps66
Ранг: Форумен бог
Регистриран на: Пет Яну 19, 2007 9:16 am Мнения: 1063 Местоположение: путинофили: "иди н***й"
|
ако сложиш отгоре:
#define MHZ *1000000
мистерията изчезва 
|
| Вто Авг 21, 2007 1:41 pm |
|
 |
|
kirchi
Ранг: Минаващ
Регистриран на: Сря Яну 03, 2007 8:52 pm Мнения: 89 Местоположение: Димитровград
|
|
| Вто Авг 21, 2007 5:11 pm |
|
 |
|
kirchi
Ранг: Минаващ
Регистриран на: Сря Яну 03, 2007 8:52 pm Мнения: 89 Местоположение: Димитровград
|
Ето всичко.
|
| Вто Авг 21, 2007 5:15 pm |
|
 |
|
Реконструктор
Ранг: Форумен бог
Регистриран на: Съб Сеп 25, 2004 12:32 pm Мнения: 8382 Местоположение: София
|
C-то е велик език. 
|
| Вто Авг 21, 2007 5:39 pm |
|
 |
|
zaphod
Ранг: Форумен бог
Регистриран на: Нед Юли 24, 2005 10:28 am Мнения: 2658
|
аве вие чувете ли се? че и аз се вързах като последен ламер и писах пост където обяснявах че не бива да се прави така, защото 10MHz/5MHz нямало да даде 2. всъщност няма да мине компилация, така както и твърдях в началото, който иска да пробва.
|
| Вто Авг 21, 2007 5:51 pm |
|
 |
|
ps66
Ранг: Форумен бог
Регистриран на: Пет Яну 19, 2007 9:16 am Мнения: 1063 Местоположение: путинофили: "иди н***й"
|
що не вземеш да го пробваш ... вместо да пишеш глупости !
аз преди да си напиша поста го компилирах - защото не бях сигурен дали препроцесора ще се оправи с 12MHZ (без пауза)
|
| Вто Авг 21, 2007 8:32 pm |
|
 |
|
zaphod
Ранг: Форумен бог
Регистриран на: Нед Юли 24, 2005 10:28 am Мнения: 2658
|
на визуалното студио не минава. бях написал поста, когато се освятках че препроцесора подменя само логически отделни стрингове, не прави просто подмяна на низ, както текстовите редактори да речем. ако даден препроцесор подменя подниз, значи е некадърен. пробвах и като видях че не минава и си коригирах поста
на компилатора на микрочип дава main.c:57:15: invalid suffix "MHz" on integer constant
на микрософтския дава
error C2059: syntax error : 'bad suffix on number'
това нещо може да мине само на препроцесор-самоделка
разбира се, ако има пауза минава, но говорим за случая БЕЗ пауза.
|
| Вто Авг 21, 2007 10:37 pm |
|
 |
|
ps66
Ранг: Форумен бог
Регистриран на: Пет Яну 19, 2007 9:16 am Мнения: 1063 Местоположение: путинофили: "иди н***й"
|
 |  |  |  | zaphod написа: на визуалното студио не минава. бях написал поста, когато се освятках че препроцесора подменя само логически отделни стрингове, не прави просто подмяна на низ, както текстовите редактори да речем. ако даден препроцесор подменя подниз, значи е некадърен. пробвах и като видях че не минава и си коригирах поста на компилатора на микрочип дава main.c:57:15: invalid suffix "MHz" on integer constant на микрософтския дава error C2059: syntax error : 'bad suffix on number' това нещо може да мине само на препроцесор-самоделка разбира се, ако има пауза минава, но говорим за случая БЕЗ пауза. |  |  |  |  |
пробвах го на BCB10 - който не ми прилича на самоделка  освен това питането на младежа беше "какво е това?" а не защо не ще да се компилира  препроцесора не прави проста подмяна на стринг - никоя ключова дума или име не започва с цифри - така че MHZ не е част от стринг (TESTMHZ и 12MHZ са различни за препроцесора) според мен е въпрос на реализация на компилатора, .... но никога не бих написал макроса без пауза ! P.S.
това "MHZ" не е май "MHz" !?
мързи ме да го пробвам с VS но съм сигурен че и там ще мине !
|
| Сря Авг 22, 2007 5:46 am |
|
 |
|
zaphod
Ранг: Форумен бог
Регистриран на: Нед Юли 24, 2005 10:28 am Мнения: 2658
|
е аз не правих пробите със примера който тука момчето е дало, просто пишех
#define MHz *1000000
.....
int i=5MHz
|
| Сря Авг 22, 2007 9:18 am |
|
 |
|
kirchi
Ранг: Минаващ
Регистриран на: Сря Яну 03, 2007 8:52 pm Мнения: 89 Местоположение: Димитровград
|
Това е пример от Hi-tech std 9.60.
Реших нето да използвам, вместо да се мъча да пиша.
|
| Сря Авг 22, 2007 11:34 am |
|
|