Pic Programlamaya baslayacağım ama hangi dil ?

Başlatan kdr042, 27 Haziran 2012, 08:47:03

jrcapa

Aşağıda 3 dille yazılmış "merhaba dünya" programını görünce  asm gözümü korkuttu şimdi.Bu dilin datasheet okumada kolaylık sağlaması veya hızlı olması ne derece bir avantajdır?Örneğin yüksek hızlı işlemciler sayesinde asm'nin hızının öneminin kalmadığı ifade ediliyor.Piyasada üst düzey devrelerde asm ile pic programlama yüzdesi nedir?Bu konuda tecrübesi olanlar, asm çalışmam için beni teşvik etsinler lütfen :) Teşekkürler.

Assembly

title   Hello World Program                             (hello.asm)
dosseg
.model small
.stack 100h
.data
hello_message db 'Hello World!',0dh,0ah,'$'
.code
main  proc
      mov    ax,@data
      mov    ds,ax
      mov    ah,9
      mov    dx,offset hello_message
      int    21h
      mov    ax,4C00h
      int    21h
main  endp
end   main
**********************************************
C
#include<stdio.h>

int main()
{
   printf("Hello World\n");
   return 0;
}
**********************************************
Visual Basic

Sub Main()
      MsgBox("Hello, World!") '
  End Sub

Tagli

Yalnız yukarıdaki ASM kodu normal bilgisayar (x86) için gibi görünüyor. Her işlemci ailesinin ASM kodu farklı olduğundan, "Hello World" örneği olarak ASM kodlarını karşılaştırmak hatalı bir genellemeye sebep olabilir.

Piyasa tecrübem yok ama tahminimce, projelerde genellikle C kullanılıyor ve bazı hassas noktalarda birkaç satır ASM ekleniyor. Hızlı çalışması gereken bir fonksiyon tamamen ASM ile yazılıp C ile çağrılabilir. Benzer şekilde, ASM kodunun C fonksiyonu çağırması da mümkün olabilir, ama bunun daha nadir olduğunu sanıyorum.
Gökçe Tağlıoğlu

gogge

Alıntı yapılan: serhat1990 - 12 Kasım 2012, 10:31:26
Yeni başlayan birine tavsiyem PIC18 + MPLAB X + XC8. Ve de bol bol datasheet okunacak tabi ki.



Hocam ' a katılıyorum . Datasheet konusuna özellikle.

Bence başka söze gerek yok. Donanımı iyi tanı. Kod kısmı microchip xc8...

kdr042

arkadaslar dil kavgası devam ediyorda  :D bakın c diyorsunuzda hangisi ama ben ileriye dönük bir dil arıyorum  kendimi geliştiricem sonu olmayan her işimi görecek olan yenilikci cevaplarınız için tesekkür ediyorum

sadogan

Alıntı yapılan: X-Fi - 12 Kasım 2012, 12:55:53
microcontroller öğrenmek için ilk asm öneriyorum C ile başlarsanız komutların işleme zamanları veya işlemci mimarisi gibi konularıda zayıf kalırsınız buda sizi birgün çuvallatır.
Ayni fikirdeyim

Mr.Java

ben hiç katılmıyorum asm diline.Bil ama kullanma taraftarıyım.Ne hi-tech nede ccs.Yeni başladıysan mikroc.
Kur derleyicisini aç kütüphanesini bak örneklere programa ihtiyacına göre düzenle bitti.
Hiçbir derleyici MikroC for pic veya Avr kadar gelişmiş değil bence yeni başlayan için.

yamak

Alıntı yapılan: Fkarizmatik - 14 Kasım 2012, 10:37:16
ben hiç katılmıyorum asm diline.Bil ama kullanma taraftarıyım.Ne hi-tech nede ccs.Yeni başladıysan mikroc.
Kur derleyicisini aç kütüphanesini bak örneklere programa ihtiyacına göre düzenle bitti.
Hiçbir derleyici MikroC for pic veya Avr kadar gelişmiş değil bence yeni başlayan için.
Eee adam başka bi microdenetliyiciye geçtiği zaman ne olacak.

sadogan

Alıntı yapılan: Fkarizmatik - 14 Kasım 2012, 10:37:16
ben hiç katılmıyorum asm diline.Bil ama kullanma taraftarıyım.Ne hi-tech nede ccs.Yeni başladıysan mikroc.
Kur derleyicisini aç kütüphanesini bak örneklere programa ihtiyacına göre düzenle bitti.
Hiçbir derleyici MikroC for pic veya Avr kadar gelişmiş değil bence yeni başlayan için.
Bil ama kullanmaya katılabilirim bilme ama c de yaza asla katılmam.

z

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

fgokcegoz

"Vicdanın ziyası, ulûm-u diniyedir. Aklın nuru, fünun-u medeniyedir. İkisinin imtizacıyla hakikat tecelli eder." (Bediüzzaman Said Nursi)

carirt

#40
microchip firmasının pic32 nin datasheetlerinde yaptığı açıklama;

assembly komutlarını kullanmayın c dilini kullanın yazıyor mplabc32yi tavsiye ediyor(gerçi şimdi xc32 çıktı)

datasheetlerinde assembly komutlarınıda vermiş peki niye vermiş mimarisini çalışma şeklini anlayabilelim diye zaten mips in kaynaklarında assembly dili çok güzel bir biçimde analtılmış ama uygulama gerçekleştirirken c dili kullanmak zorundayız

ekleme: MPLAB C32 de assmbly dili ile program yazılabiliyor bir kaç denemem oldu 

z

Örneğin;

PIC16 serisi işlemcinin toru topu 30 kadar komutu var. Hepsi ama hepsi bu.

Eğer bu 30 komutu biraraya getirerek küçükte olsa program parçacığı yazamayan birisi elektronik işlerine hiç ama hiç girmesin derim.

Büyük çaplı program parçacıklarını bu komutlarla yazmak isteyen yazsın. O kısmı beni ilgilendirmez. Tavsiyem yazmaması yönünde.

ASM nin bu denli dışlanmasına karşıyım.

Bak ne güzel C, C++ ve ASM biliyorum dedin hocam.

Eğer yazılıma başlayacak kişi elektronikçi değilse ne öğrenecekse öğrensin. Ama elektronikçiyse bu adam
kapıları filipflopları ve bunlarla devre tasarlamayı bilmek zorunda.

Bunları bilince artık ASM vız gelir. Çünkü işlemcinin komut seti zaten bu adamın lojik tasarımlardan bildiği konular.

ASM dili kapı ve FF bazında yapılan tasarımların 1 yada 2 adım ilerisidir.

Haksızsam haksızsın diyin.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

muhittin_kaplan

hocam Elektronik Temelli, Yazılıma İse Vb ile tepeden giren biriyim.
Bence Bir MCU programlamak isteyen biri Register nedir, ASM nedir, Komutları ne iş yapar bilmek durumundadır. Ama Kullanır kullanmaz (ki bence kullanmamalı) kendisine kalmış.
Ama ASM bilmek zorunda.

z

Son model MCUlarla yaptığımız devrelerde kapı ile ilave devrecikler kurma ihtiyacı artık kalmadı. Fakat ihtiyaç olduğunda kurarız elbet. Örnek vermek gerekirse koruma devreleri, digital sinyallerin filitrelenmesi.

Sizleri bilmem ama elektronik eğitiminde digital tasarıma ait dersleri sırayla aşağıdaki gibi aldık;

Combinational logic
Sequential logic
Microprocessor + Assembly

Eğer bu dünyaya adım atacak adam C ile başlarsa bu durumda hoby olarak elektronikle uğraşacak konuları atlaya atlaya ilerleyecek demektir. Bu durumda bu adam ne mikroişlemciyi bilir ne Filipfilop bilir ama zamanla yarım yamalak öğrenir.

Eğer bu adam elektronik dünyasına değil de yazılım dünyasına giriş yapacakca o zaman bu adamın zaten ASM ile FF ile işi olmaz.

Çok az öğreneyim ama bir an önce iş çıkartayım diyorsa C den şaşmasın. Yok ben ayaklarımı sağlam basayım diyorsa ASM öğrenilmesi gereken önemli bir konu.

Olaya nerden bakıldığı çok önemli. Benim gördüğüm, arkadaşımın gördüğü, amirimin gördüğü annemin gördüğü......


Bana e^st de diyebilirsiniz.   www.cncdesigner.com

muhittin_kaplan

Alıntı YapEğer yazılıma başlayacak kişi elektronikçi değilse ne öğrenecekse öğrensin. Ama elektronikçiyse bu adam
kapıları filipflopları ve bunlarla devre tasarlamayı bilmek zorunda
Aynen Hocam.


mesaj birleştirme:: 14 Kasım 2012, 20:37:07

Combinational logic
Sequential logic
Microprocessor + Assembly

benim ders programım ufak bir değişiklikle

Microprocessor + Assembly+Basic+C