Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


Ответ
Опции темы
Непрочитано 11.08.2012, 16:39   #1061
ZoomerJuk
Временная регистрация
 
Регистрация: 12.09.2008
Сообщений: 61
Сказал спасибо: 20
Сказали Спасибо 7 раз(а) в 5 сообщении(ях)
ZoomerJuk на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Столкнулся с непонятной проблемой:
есть некоторая программа вида
Код:
#директивы

глобальные переменные
глобальные переменные
глобальные переменные

main()
{
основной код
}
большая часть глобальных переменных в программе не используется, просто изначально они были заданы, а потом, при оптимизации кода, набность в них отпала.
так вот, если убрать эти переменные, программа перестает работать.

сравнил ассемблерный листинг, обнаружил разницу в строках присваивания переменных, напрмер, для сравнения один и тот же участок программы в 2 случаях:
Код:
так в работающей программе
14AE:  MOVLW  C8
14B0:  MOVLB  1
14B2:  MOVWF  x46
14B4:  MOVLB  0
14B6:  BRA    11BC
Код:
а так в не работающей
1280:  MOVLW  C8
1282:  MOVWF  xA2
1284:  BRA    11BC
что за помогите восполнить пробел знаний
Реклама:

Последний раз редактировалось ZoomerJuk; 11.08.2012 в 16:43.
ZoomerJuk вне форума   Ответить с цитированием
Непрочитано 11.08.2012, 17:06   #1062
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

ZoomerJuk, Сколько раз говорить можно ? Минимальный неработающий кусок кода .
По вашему шаблону гадать предлагаете ?
__________________
Осторожно , злой кот
dosikus вне форума   Ответить с цитированием
Непрочитано 11.08.2012, 17:18   #1063
ZoomerJuk
Временная регистрация
 
Регистрация: 12.09.2008
Сообщений: 61
Сказал спасибо: 20
Сказали Спасибо 7 раз(а) в 5 сообщении(ях)
ZoomerJuk на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Сейчас исправлюсь, скину 2 варианта
ZoomerJuk вне форума   Ответить с цитированием
Непрочитано 11.08.2012, 17:49   #1064
ZoomerJuk
Временная регистрация
 
Регистрация: 12.09.2008
Сообщений: 61
Сказал спасибо: 20
Сказали Спасибо 7 раз(а) в 5 сообщении(ях)
ZoomerJuk на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Вот, прикрепил исходники для обоих вариантов - работающего и нет.
Разница в том, что в не работающем удалены неиспользуемые глобальные переменные.
Так же добавил ассемблерные листинги.
Вложения:
Тип файла: rar Код программы.rar (11.8 Кб, 52 просмотров)
ZoomerJuk вне форума   Ответить с цитированием
Непрочитано 11.08.2012, 22:54   #1065
ZoomerJuk
Временная регистрация
 
Регистрация: 12.09.2008
Сообщений: 61
Сказал спасибо: 20
Сказали Спасибо 7 раз(а) в 5 сообщении(ях)
ZoomerJuk на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

народ, ну что, есть какие-либо идеи?
я даже не знаю в каком направлении копать. Есть предположение, что это связано с организацией памяти, но я пока этот вопрос как следует не изучил.
ZoomerJuk вне форума   Ответить с цитированием
Непрочитано 11.08.2012, 22:56   #1066
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

ZoomerJuk, Извиняюсь , а можете подождать ?
Завтра дам вам ответ . Сегодня очень сильно занят....
__________________
Осторожно , злой кот
dosikus вне форума   Ответить с цитированием
Непрочитано 11.08.2012, 22:57   #1067
ZoomerJuk
Временная регистрация
 
Регистрация: 12.09.2008
Сообщений: 61
Сказал спасибо: 20
Сказали Спасибо 7 раз(а) в 5 сообщении(ях)
ZoomerJuk на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Да подожду, конечно. Не горит. Да и куда мне деться, сам врятли смогу осилить задачу...
ZoomerJuk вне форума   Ответить с цитированием
Непрочитано 12.08.2012, 15:15   #1068
vlad_ru
Вид на жительство
 
Регистрация: 09.12.2006
Сообщений: 337
Сказал спасибо: 422
Сказали Спасибо 34 раз(а) в 26 сообщении(ях)
vlad_ru на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Столкнулся с такой проблемой: при выводе 16 символов( в строку) на LCD 16x1 в железе печатается 16 , а в протеусе только 8. Если я меняю в файле Flex_lcd_16x1.c строку:

#define LCD_HALF_WIDTH (LCD_WIDTH/2)

на

#define LCD_HALF_WIDTH (LCD_WIDTH)

то получается наоборот- в протеусе 16 символов , в железе 8.
Как сделать чтоб работало одинаково и в протеусе и в железе(или это не реально). Проект прикладываю.
Вложения:
Тип файла: rar My_test.rar (64.4 Кб, 35 просмотров)
vlad_ru вне форума   Ответить с цитированием
Непрочитано 12.08.2012, 17:47   #1069
ZoomerJuk
Временная регистрация
 
Регистрация: 12.09.2008
Сообщений: 61
Сказал спасибо: 20
Сказали Спасибо 7 раз(а) в 5 сообщении(ях)
ZoomerJuk на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Это из-за того, что в протеусе другая адрессация памяти. Смотри рисунок.
Из-за чего так, ХЗ, толи баг разработчиков, толи где настраивать надо.



Что б в проте работало, поправь следующую функцию (закомментируй проверку позиции):

Код:
void lcd_putc(char c) 
{ 
 switch(c) 
   { 
    case '\f': 
      lcd_send_byte(0,1); 
      delay_ms(2); 
      lcd_xcoord = 1; 
      break; 
    
    case '\n': 
       lcd_gotoxy(1,1);  //  Goto start of line 1 
       break; 
    
    case '\b': 
       lcd_send_byte(0, 0x10); 
       lcd_xcoord--; 
       //if(lcd_xcoord == LCD_HALF_WIDTH) 
          //lcd_gotoxy(LCD_HALF_WIDTH, 1); 
       break; 
    
    default: 
       lcd_send_byte(1, c); 
       lcd_xcoord++; 
      // if(lcd_xcoord == (LCD_HALF_WIDTH +1)) 
      //lcd_gotoxy(LCD_HALF_WIDTH +1, 1); 
       break; 
   } 
}
на железо это не должно повлиять, а там ХЗ.

Так же не применяй printf("%3.2f\r", volts) и float. Памяти они жрут немеряно.
Вместо них примени lcd_putc("abcdefgh01234567"); и напряжение измеряй, например, так:

Код:
  lcd_putc("\fU=");             //очистка дисплея, вывод U=
  adc_value = read_adc();       // считываем значение с АЦП
  volts = (adc_value*49)/10;    // преводим в милливольты
  lcd_putc((volts/1000)+'0');   // выводим тысячи миливольт
  lcd_putc('.');
  lcd_putc(((volts/100)%10)+'0');  // выводим сотни миливольт
  lcd_putc(((volts/10)%10)+'0');   // выводим десятки миливольт
  lcd_putc("V");

Последний раз редактировалось ZoomerJuk; 12.08.2012 в 17:49. Причина: Опечатки
ZoomerJuk вне форума   Ответить с цитированием
Сказали "Спасибо" ZoomerJuk
vlad_ru (12.08.2012)
Непрочитано 12.08.2012, 18:39   #1070
ZoomerJuk
Временная регистрация
 
Регистрация: 12.09.2008
Сообщений: 61
Сказал спасибо: 20
Сказали Спасибо 7 раз(а) в 5 сообщении(ях)
ZoomerJuk на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Держи исправления, vlad_ru.
Вложения:
Тип файла: zip My_test.zip (75.8 Кб, 114 просмотров)
ZoomerJuk вне форума   Ответить с цитированием
Сказали "Спасибо" ZoomerJuk
vlad_ru (12.08.2012)
Ответ

Закладки


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
i2c+ccs pic Gladkih Микроконтроллеры, АЦП, память и т.д 9 18.04.2016 22:17
PIC BASIC PRO Compiler 2.47 dosikus Proteus, KiCAD и другие ECAD 27 05.12.2009 05:48
изучение IAR AVR C compiler granel Микроконтроллеры, АЦП, память и т.д 0 10.10.2008 20:45
PIC C Compiler PCWH458 sergxxx Микроконтроллеры, АЦП, память и т.д 9 23.09.2008 18:25
Не включается дебаггер в CCS C Compiler BigMazzi Микроконтроллеры, АЦП, память и т.д 4 19.09.2008 13:34


Часовой пояс GMT +4, время: 04:28.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot