Перейти к содержанию
    

Я об изучении Си пишу. Компилировать проекты на асме в CV просто так не получится ...

Здравствуйте, вы как я понял программист на С )) очевидно. Посоветуйте книгу по Сиавр, или лучше список литературы для полного освоения этого языка, а то я с ассемблером совсем запутался, все дают примеры и советы по си, а на си, если это можно назвать программированием, я только для ардуино могу писать. буду признателен, заранее спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте, вы как я понял программист на С )) очевидно. Посоветуйте книгу по Сиавр, или лучше список литературы для полного освоения этого языка, а то я с ассемблером совсем запутался, все дают примеры и советы по си, а на си, если это можно назвать программированием, я только для ардуино могу писать. буду признателен, заранее спасибо!

Я электронщик, пишущий в том числе и на Си. Так вы знаете Си или не знаете ? Если знаете, то вот тут есть книжка Шпака "Программирование на языке С для AVR и PIC микроконтроллеров", хотя я ей при самообучении не пользовался:

http://lord-n.narod.ru/walla.html

 

А если не знаете, то начать советую с замечательной книжки Крупника "Изучаем Си". Она написана для школьников, не понять просто невозможно. Именно с нее я начинал.

Да, качаете CodeVision, генерируете простейший проект для вашего МК (начать вполне можно с мигания лампочкой или с приема/передачи через UART по прерываниям (только не пытайтесь использовать библиотечную 'printf', иначе от вас ускользнет сам механизм работы UART)), и подробно его разбираете. Это не сложно, совсем. Но прежде вам придется прочесть соотв. разделы даташита на ваш МК.

Удачи. Будут вопросы - пишите

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я электронщик, пишущий в том числе и на Си. Так вы знаете Си или не знаете ? Если знаете, то вот тут есть книжка Шпака "Программирование на языке С для AVR и PIC микроконтроллеров", хотя я ей при самообучении не пользовался:

http://lord-n.narod.ru/walla.html

 

А если не знаете, то начать советую с замечательной книжки Крупника "Изучаем Си". Она написана для школьников, не понять просто невозможно. Именно с нее я начинал.

Да, качаете CodeVision, генерируете простейший проект для вашего МК (начать вполне можно с мигания лампочкой или с приема/передачи через UART по прерываниям (только не пытайтесь использовать библиотечную 'printf', иначе от вас ускользнет сам механизм работы UART)), и подробно его разбираете. Это не сложно, совсем. Но прежде вам придется прочесть соотв. разделы даташита на ваш МК.

Удачи. Будут вопросы - пишите

Спасибо Вам, за советы. Ну в "си" я не могу сказать что разбираюсь, думаю со стороны виднее, но на ардуиновсой IDE могу спокойно писать все что нужно, так себе свой дом сделал ну если не "умным" то "грамотным" именно на базе этих платформ, ну и естественно всякие свои фантазии могу на этом IDE реализовывать. Просто не знаю на много ли он от реального "си" отличается или как? Но на всякий случай начну с нуля. Еще раз спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Доброго времени суток уважаемые программисты и электронщики ) вот у меня атмега 8 и такой код (см. ниже) все компилируется как надо, заливаю на мегу8 и подключаю к блютузу (hc-05), но почему то не работает с блютузом.. может фьюзы как то не так настроил? Объясните если кто может. Заранее спасибо!

 

.include <m8def.inc>

 

.def Temp=R16

.def Temp1=R17

.def Temp2=R18

.def Temp3=R19

.def Temp4=R20

 

 

.equ XTAL = 1000000

.equ baudrate = 9600

.equ bauddivider = XTAL/(16*baudrate)-1

 

.cseg

.org 0

 

ldi Temp,0b11111111

out DDRB,Temp

 

ldi Temp,High(RAMEND)

out SPH,Temp

 

ldi Temp,Low(RAMEND)

out SPL,Temp

 

rcall USART_Init

 

Begin:

 

rcall USART_Receive

 

cpi Temp, 'A'

brne CaseB

ldi Temp2, 0b00000001

rjmp Light

 

CaseB:

cpi Temp, 'B'

brne CaseC

ldi Temp2, 0b00000010

rjmp Light

 

CaseC:

 

cpi Temp, 'C'

brne CaseD

ldi Temp2, 0b00000100

rjmp Light

 

CaseD:

 

cpi Temp, 'D'

brne Begin

ldi Temp2, 0b00001000

 

Light:

out PortB,Temp2

 

rjmp Begin

 

 

 

USART_Receive:

 

sbis UCSRA, RXC

rjmp USART_Receive

 

in Temp, UDR

ret

 

USART_Init:

 

LDI R16, low(bauddivider)

OUT UBRRL,R16

LDI R16, high(bauddivider)

OUT UBRRH,R16

 

ldi r16, (1<<RXEN)|(1<<TXEN)

out UCSRB,r16

ldi r16, (1<<URSEL)|(1<<USBS)|(3<<UCSZ0)

out UCSRC,r16

ret

Изменено пользователем David_Ali

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Объясние если кто может.

Сначала нужно научиться обмениваться данными по UART с обычным компьютером, на котором запущена терминалка, например, тот же TeraTerm или HyperTerminal из состава Windows. И только потом браться за более сложные вещи ...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сначала нужно научиться обмениваться данными по UART с обычным компьютером, на котором запущена терминалка, например, тот же TeraTerm или HyperTerminal из состава Windows. И только потом браться за более сложные вещи ...

Там передача данных по RX TX, какая разница передавать их на терминал или туда? и как настроить МК? может объясните если знаете? )) мне это больше поможет.

P.S. спасибо что отозвались.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Там передача данных по RX TX, какая разница передавать их на терминал или туда? и как настроить МК? может объясните если знаете? )) мне это больше поможет.

P.S. спасибо что отозвались.

Разница огромная, особенно если есть осциллограф. От машины можно передавать что угодно и когда угодно, и видеть в окне терминалки, что она принимает извне.

Как настроить МК ? Простите, а я советы для кого пишу ?????

1. Документацию на МК читали ? Нет ? Ну так и говорить дальше не о чем.

2. В Codevision шаблон проекта с UART генерировали ? Тоже нет ? Тем более говорить не о чем.

 

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

http://zalil.ru/34349812

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Разница огромная, особенно если есть осциллограф. От машины можно передавать что угодно и когда угодно, и видеть в окне терминалки, что она принимает извне.

Как настроить МК ? Простите, а я советы для кого пишу ?????

1. Документацию на МК читали ? Нет ? Ну так и говорить дальше не о чем.

2. В Codevision шаблон проекта с UART генерировали ? Тоже нет ? Тем более говорить не о чем.

 

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

http://zalil.ru/34349812

Спасибо, скачал разбираю, а вот на CodeVision не пишу.. просто через консоль удобнее, мне по крайней мере. на счет документации, конечно же читал!! А советы вы пишите для меня )) за что вам спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, скачал разбираю, а вот на CodeVision не пишу.. просто через консоль удобнее, мне по крайней мере. на счет документации, конечно же читал!! А советы вы пишите для меня )) за что вам спасибо!

В шаблоне советую разобраться, на чем бы вы ни писали

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если позволите, вставлю свои 5 копеек по поводу "мне в консоли удобнее". сейчас даже крутые программисты в линухе (те, которые командную строку из 300 символов вручную набрать принимают за личное оскорбление, т.к. нормой для них является 500) используют в работе продвинутые редакторы программ. поэтому я бы советовал писать программы все-таки в IDE, пользуясь при этом всеми ее возможностями, среди которых могут быть средства, подсказывающие верные решения, предупреждающие об ошибках и т.п.

 

первоначально все считали, что ездить на карете удобнее, чем на автомобиле, но по мере привыкания к комфорту мнения поменялись :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если позволите, вставлю свои 5 копеек по поводу "мне в консоли удобнее". сейчас даже крутые программисты в линухе (те, которые командную строку из 300 символов вручную набрать принимают за личное оскорбление, т.к. нормой для них является 500) используют в работе продвинутые редакторы программ. поэтому я бы советовал писать программы все-таки в IDE, пользуясь при этом всеми ее возможностями, среди которых могут быть средства, подсказывающие верные решения, предупреждающие об ошибках и т.п.

 

первоначально все считали, что ездить на карете удобнее, чем на автомобиле, но по мере привыкания к комфорту мнения поменялись :)

я пишу на JAVA.. и мне в консоли удобнее.. а на счет 500 строчек.. то скажу бывало и больше, просто для МК я не писал, другой профиль.. если хотите добавить свои "5 копеек" добавляйте по теме, может подскажете что то о предыдущем посте на счет блютуза? а то у меня мнение что тут не форум разработчиков электроники, а форум философов открывщих новое течение.. ))

P.S. Ни в коем случае не хотел никого обидеть! Извольте не воевать со мной, а лучше посоветуйте учителя! ...... как же тяжело получить простой ответ )))

Изменено пользователем David_Ali

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Доброго времени суток уважаемые программисты и электронщики ) вот у меня атмега 8 и такой код (см. ниже) все компилируется как надо, заливаю на мегу8 и подключаю к блютузу (hc-05), но почему то не работает с блютузом.. может фьюзы как то не так настроил? Объясните если кто может. Заранее спасибо!

 

Первая ошибка, которая сразу бросается в глаза: при системной частоте в 1МГц и скорости передачи данных через USART 9600 бод будет довольно большой процент ошибок при приеме/передаче (159 стр. даташита). Попробуйте повысить системную частоту до 8 Мгц, например, и настроить приемопередатчик USART как это рекомендованно на стр. 161.

Изменено пользователем artkam

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

как же тяжело получить простой ответ )))

Не "получить", а "забрать". Вам пришла посылка и лежит на почте, вам звонят и говорят об этом, а вы почему-то ее не забираете. Если бы вы разобрались с тем, как работает предоставленный мной заведомо исправный код, не пришлось бы вам жаловаться на отсутствие ответов ...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если хотите добавить свои "5 копеек" добавляйте по теме, может подскажете что то о предыдущем посте на счет блютуза?
извините, но вы напоминаете больного, который жалуется на головную боль, врач ему говорит, что надо бросить пить, а он возмущается: "болит-то голова, а не живот!".

 

если бы вы пользовались IDE, хотя бы и CodeVision, то наверняка эта оболочка сразу подсказала бы вам, что тактовая частота у вас неверно задана для выбранной скорости UART. и наверняка даже предложила бы "мастера", который помог бы вам верно произвести настройку периферии и т.п. поэтому я бы советовал прислушиваться к философии, т.к. это "мать всех наук" :)

 

 

ни один учитель не станет учить ученика, который будет указывать учителю, как его учить :) во загнул!

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...