реклама на сайте
подробности

 
 
> АТмега 128 с внешней памятью и светодиоды на порту F, странное поведение
GDI
сообщение Nov 8 2006, 11:54
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



странную картину наблюдаю сейчас... атмега128 в режиме с внешней памятью PA0-PA7 - адрес/данные , на порте F есть светодиоды PF0-PF2 (3 штуки) при мигании лобым светодиодом почему то дергается аналогичный бит на порте А, т.е. вывожу "1" на PF0 - выводится "1" и на PA0 , "0" - соответственно тоже выводится, что за фигня? никто не сталкивался? Для чистоты эксперимента оторвал ноги от платы - таже фигня. Проверял на нескольких платах - одно и то же - т.е. это не выход из строя одной меги.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
vooon
сообщение Nov 13 2006, 16:48
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 72
Регистрация: 27-06-06
Из: Msk
Пользователь №: 18 401



Цитата
Объясните тогда, что делает этот оператор static byte led_act_delay = LED_ACT_NORMAL_DELAY;?


Попробую smile.gif

в программе определена символическая константа:
#define LED_ACT_NORMAL_DELAY 10

препроцессор везде где встретит LED_ACT_NORMAL_DELAY заменит на 10
т.е. мы получим код:
static byte led_act_delay = 10;

Переменные типа static инициализируются только один раз (только при первом вызове функции)
т.е. мы определяем led_act_delay имеющую тип byte (typedef unsigned char byte;) которой присваивается 10.

Цитата
Вообще непонятно, зачем объявлять static в подпрограмме, переменная static является такой же глобальной переменной, как и extern, только в пределах файла, где она объявлена, и для удобства пользования должна быть объявлена на внешнем уровне. Объявление переменной может, конечно, включать инициализацию.


С этим не соглашусь, static является локальной => виден только
в этой функции, а не в пределах файла.

Два простых примера:
Код
/* Демонстрация автоматических и статических локальных переменных */
#include <stdio.h>

void func1 (void)
{
    static int x = 20;
    int y = 20;

    printf ( "x = %i, y = %i\r\n", x--, y-- );
}

void main (void)
{
    int count;

    for ( count = 0; count < 20; count++ )
    {
        printf ( "Iteration %i: ", count );
        func1 ();
    }
}

Код
/* Демонстрация автоматических и статических локальных переменных
** попробуем узнать x из основной программы
*/
#include <stdio.h>

void func1 (void)
{
    static int x = 20;
    int y = 20;

    printf ( "x = %i, y = %i\t", x--, y-- );
}

void main (void)
{
    int count;

    for ( count = 0; count < 20; count++ )
    {
        printf ( "Iteration %i: ", count );
        func1 ();
        printf ( "x = %i\r\n", x );
    }
}


PS: пытался обьяснить точно (чтобы небыло недоразумений smile.gif )
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- GDI   АТмега 128 с внешней памятью и светодиоды на порту F   Nov 8 2006, 11:54
- - otrog   Может быть включен режим совместимости с M103?   Nov 8 2006, 12:07
- - GDI   режим совместимости не включен. написал новую прог...   Nov 8 2006, 12:26
|- - Petka   Цитата(GDI @ Nov 8 2006, 15:26) режим сов...   Nov 8 2006, 12:30
|- - klop   Цитата(GDI @ Nov 8 2006, 15:26) режим сов...   Nov 8 2006, 12:36
- - GDI   чтобы предотвратить вопросы по фьюзам: стоят биты ...   Nov 8 2006, 12:44
|- - Petka   Цитата(GDI @ Nov 8 2006, 15:44) чтобы пре...   Nov 8 2006, 12:46
|- - klop   Цитата(GDI @ Nov 8 2006, 15:44) листинг с...   Nov 8 2006, 12:59
- - GDI   = 0 - означает установленный фьюз бит   Nov 8 2006, 12:52
- - otrog   Что бы исключить догадки, приведите все фьюзы и ли...   Nov 8 2006, 13:03
- - GDI   причем проявляется этот эффект только при попытке ...   Nov 8 2006, 13:05
- - GDI   Похоже этот эффект не влияет на работу шины внешне...   Nov 8 2006, 15:56
|- - SasaVitebsk   Цитата(GDI @ Nov 8 2006, 18:56) Похоже эт...   Nov 8 2006, 20:30
|- - =GM=   Цитата(GDI @ Nov 8 2006, 15:56) Похоже эт...   Nov 10 2006, 10:18
- - VDG   Цитата(GDI @ Nov 8 2006, 15:54) странную ...   Nov 8 2006, 21:10
- - GDI   To SasaVitebsk Подпорки ставить не могу - платы уж...   Nov 9 2006, 07:30
- - GDI   Наконец то найдена ошибка (или не ошибка)... если ...   Nov 9 2006, 08:17
|- - ARIM   Цитата(GDI @ Nov 9 2006, 11:17) Cпасибо K...   Nov 9 2006, 08:58
|- - KRS   Цитата(GDI @ Nov 9 2006, 11:17) Наконец т...   Nov 9 2006, 09:59
- - vooon   ЦитатаНо эта переменная никогда не будет равна 0, ...   Nov 10 2006, 22:15
|- - =GM=   Цитата(vooon @ Nov 10 2006, 22:15) Цитата...   Nov 13 2006, 15:14
|- - =GM=   Цитата(vooon @ Nov 13 2006, 16:48) Цитата...   Nov 13 2006, 17:36
- - GDI   Цитата(GDI @ Nov 9 2006, 11:17) Cпасибо Kurtу. ...   Nov 14 2006, 08:29


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 23:13
Рейтинг@Mail.ru


Страница сгенерированна за 0.08276 секунд с 7
ELECTRONIX ©2004-2016